Finding slope from a 2D plot
Mostrar comentarios más antiguos
I have plotted a group of points using plot(x,y) command. The plot is non linear. I attached a picture with a line drawn on the linear side of the graph. Give me an idea of how to find the slope.

2 comentarios
Star Strider
el 7 de Dic. de 2014
Obvious question: Slope of what ?
Four possibilities:
- The slope of the line from about 0 to about 0.5 ...
- The slope of the relatively linear descending part of the curve between about 1 and 3.75 ...
- The descending part of the loop ...
- The ascending part of the loop ...
... or something else?
adrooney
el 7 de Dic. de 2014
Respuestas (1)
Image Analyst
el 7 de Dic. de 2014
I see 4 lines. Anyway, extract the x and y coordinates that you want to fit a line to, then use polyfit:
coefficients = polyfit(x, y, 1);
% Now get the slope, which is the first coefficient in the array:
slope = coefficients(1);
6 comentarios
adrooney
el 7 de Dic. de 2014
Image Analyst
el 7 de Dic. de 2014
Yes. But I don't know how you plan on finding linear portions. It looks like there could be several chunks of the curve that are roughly linear. There must be some idea in your head about which one you'd pick and what characteristics it has that make you pick that one over all the other possible linear chunks. But personally, I have no idea.
adrooney
el 7 de Dic. de 2014
Image Analyst
el 7 de Dic. de 2014
Why don't you go from element 1 to N and then plot the slope as a function of N? You'll see it's fairly constant until a certain number of elements and then the slope will head down to zero. I bet if you examine the curve you can come up with some kind of algorithm to pick the best N.
adrooney
el 7 de Dic. de 2014
Image Analyst
el 7 de Dic. de 2014
You can use
grid on;
or you can use line() to draw lines at certain, specific places.
xl = xlim();
yl = ylim();
% Draw quadrant dividing lines
xLine = (x(1)+x(2))/2;
yLine = (y(1)+y(2))/2;
% Draw vertical line
line([xLine, xLine], yl, 'Color', 'r', 'LineWidth', 2);
% Draw horizontal line.
line(xl, [yLine, yLine], 'Color', 'r');
Categorías
Más información sobre Discrete Data Plots en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

