Select values on x axis corresponding to a y axis value
12 ビュー (過去 30 日間)
古いコメントを表示
Hi Everyone, I am trying to make a fit for the linear portion of the graph using MATLAB code, but I am stuck at this point.
I am trying to extract the value of x axis where the 10% line is made as shown in figure below. and extract x axis data where the 90% line is made. and that is defined by the variable parameter. Any help would be appreciated.
0 件のコメント
採用された回答
Mauro Fusco
2019 年 3 月 12 日
Let's say that your curve is described by the vectors x and y (I imagine that you obtain that curve via plot(x,y)).
Then you can find the maximum of the curve as:
y_max = max(y);
You can then pick the indices of the points corresponding to 10% and 90% of the maximum as:
idx_y10 = find(y == 0.1*y_max);
idx_y90 = find(y == 0.9*y_max);
The values that you are searching on the x axis will be:
x_10 = x(idx_y10);
x_90 = x(idx_y90);
I did not try it, enjoy!
5 件のコメント
Mauro Fusco
2019 年 3 月 12 日
Very good, but it is correct that my answer was not fully precise. Therefore, I post here a working code:
close all;
x = 0:0.01:3*pi/4;
y=sin(x);
plot(x,y);
[y_max,idx_max] = max(y);
idx_y10 = find(y > 0.1*y_max,1,'first');
idx_y90 = find(y(1:idx_max) < 0.9*y_max,1,'last');
x_10 = x(idx_y10);
x_90 = x(idx_y90);
hold on;
plot(x_10,0.1*y_max,'o red');
hold on;
plot(x_90,0.9*y_max,'o red');
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Orange についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!