Plotting a line through 2 points

Hello,
I have a file with a difference in acceleration between 2 conditions, filename is 'ad'. I need to draw a line through 25% and 75% of the max of this data and then find the x-position where this line intercepts the x-axis.
As an illustration, this is what I want to do: http://tinypic.com/r/rab7te/5
Any help is appreciated, thanks.

 採用された回答

Image Analyst
Image Analyst 2013 年 10 月 1 日

0 投票

Use the line() function. Just figure out the two endpoints, which shouldn't be very hard at all. Use "hold on" before you call line() so that you don't blow away the curve.

5 件のコメント

Dennis
Dennis 2013 年 10 月 1 日
Sorry, but I don't understand what you mean. Could you please explain further? I have the x and y points at 25 and 75% of the max, how do I proceed?
Image Analyst
Image Analyst 2013 年 10 月 1 日
To draw a line between just those two points, you'd do
line([x25, x75], [y25, y75], 'Color', 'r', 'LineWidth', 3);
If you want to extend it past those points a short distance, then just recall high school algebra and the formula for a line:
slope = (y75-y25)/(x75-x25);
xLeft = 80; % Whatever x value you want.
yLeft = slope * (xLeft - x25) + y25;
xRight = 100; % Whatever x value you want.
yRight = slope * (xRight - x25) + y25;
line([xLeft, xRight], [yLeft, yRight], 'Color', 'r', 'LineWidth', 3);
Dennis
Dennis 2013 年 10 月 1 日
That seems to do it, thanks a lot!
ErnestoE
ErnestoE 2020 年 9 月 15 日
Does this works for vertical lines too? i.e. if both values of x is the same?
Image Analyst
Image Analyst 2020 年 9 月 15 日
Yes. Just try it. And there is a new function xline() if you want the line to run all the way across the entire distance in y, instead of just between two points inside the axes.
xline(xLeft, 'Color', 'r', 'LineWidth', 3);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGraphics Object Properties についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by