グラフのy座標の値(1点)を返す関数ってありますか??
32 views (last 30 days)
Show older comments
質問
・表示したグラフ(自分の場合、複雑なsinc関数です)のx座標を指定したときに、y座標を返してくれるMATLABの関数があれば教えていただきたいです。
(例:y=2xというグラフなら、x=1を引数とすると、y=2と返してくれる関数)
(注)引数は整数nではなく、x座標です。nがとても大きな数字で、そのx座標に対応するnを見つけるのが困難なため、y座標を得ることができなく困っています。
以上、素人質問で大変恐縮ですが、どなたか教えていただけると幸いです。
0 Comments
Answers (3)
Atsushi Ohashi
on 25 Feb 2021
関数の式を無名関数として定義し、それを利用してはいかがでしょうか。
>> f = @(x) 2*x;
>> f(2)
ans =
4
0 Comments
Hernia Baby
on 27 Feb 2021
Edited: Hernia Baby
on 27 Feb 2021
論理値によるインデックス付けをしてみてはどうでしょう? aを任意の値とします。
y(x==a)
とすれば、x=aのときのyが返ってきます。
逆に bをyの任意の点として
x(y==b)
とすればy=bのときのxが返ってきます。
0 Comments
OH
on 27 Feb 2021
理解不足かも知れませんが、グラフはもう出力されていて、その図に対してx座標を入力してy座標を得るという認識です。
複雑なグラフなら工夫が必要ですが、これでいかがでしょうか。
clf;
hold on
x = 30;%出力が知りたいx座標
arr_x = 1:100;
arr_y = arr_x*2;
plot(arr_x,arr_y)%y=2xのグラフ描画
f = findobj(gca,'Type','line');%現在のfigから線に関するオブジェクトを探す
f_x = get(f,'Xdata');
f_y = get(f,'Ydata');
col = find(f_x == x);%x座標は何列目にあるか
y = f_y(col);%col列目のy座標を返す(恐らく欲しい値)
scatter(x,y)%確認用
hold off
0 Comments
See Also
Categories
Find more on グラフとネットワーク アルゴリズム in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!