Find value of x, from max y (graph)

3 ビュー (過去 30 日間)
Andrew
Andrew 2014 年 10 月 17 日
コメント済み: Michael Haderlein 2014 年 10 月 17 日
figure(2);
vel = diff(y)./diff(x);
plot(x(1:end-1), vel)
display(max(findpeaks(vel)))
x(max(findpeaks(vel)));
Trying to find the value of x corresponding to the maximum value of y, for this velocity vs time graph.
displays error due to logical or integer access.

回答 (2 件)

Mischa Kim
Mischa Kim 2014 年 10 月 17 日
Andrew, check out
x = 0:0.1:6;
y = sin(x + 0.5);
vel = diff(y)./diff(x);
plot(x(1:end-1), vel,x(vel == max(vel)),max(vel),'dr')

Michael Haderlein
Michael Haderlein 2014 年 10 月 17 日
編集済み: Michael Haderlein 2014 年 10 月 17 日
I'd actually prefer the following:
...
vel = diff(y)./diff(x);
[maxvel,ind]=max(vel);
plot(x(1:end-1),vel,x(ind),maxvel,'or')
If you have a large number of velocities, this one here will be faster. For a small number, it just doesn't matter.
  5 件のコメント
Andrew
Andrew 2014 年 10 月 17 日
in addition, if just have a graph and i wanted to find the x value from a y value, how would i do it ?
Michael Haderlein
Michael Haderlein 2014 年 10 月 17 日
What do you mean? You can, for instance, use the Data Cursor tool in the menu toolbar. Or you use the handles (plot_handles=get(gca,'children');) of the plots and then extract the x and the y data of the plots (x=get(plot_handles(1),'xdata');).

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

カテゴリ

Help Center および File ExchangeLine Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by