グラフのy座標の値(​1点)を返す関数って​ありますか??

30 ビュー (過去 30 日間)
Saneyuki Shibata
Saneyuki Shibata 2021 年 2 月 22 日
回答済み: OH 2021 年 2 月 27 日
質問
・表示したグラフ(自分の場合、複雑なsinc関数です)のx座標を指定したときに、y座標を返してくれるMATLABの関数があれば教えていただきたいです。
(例:y=2xというグラフなら、x=1を引数とすると、y=2と返してくれる関数)
(注)引数は整数nではなく、x座標です。nがとても大きな数字で、そのx座標に対応するnを見つけるのが困難なため、y座標を得ることができなく困っています。
以上、素人質問で大変恐縮ですが、どなたか教えていただけると幸いです。

回答 (3 件)

Atsushi Ohashi
Atsushi Ohashi 2021 年 2 月 25 日
関数の式を無名関数として定義し、それを利用してはいかがでしょうか。
>> f = @(x) 2*x;
>> f(2)
ans =
4

Hernia Baby
Hernia Baby 2021 年 2 月 27 日
編集済み: Hernia Baby 2021 年 2 月 27 日
論理値によるインデックス付けをしてみてはどうでしょう? aを任意の値とします。
y(x==a)
とすれば、x=aのときのyが返ってきます。
逆に bをyの任意の点として
x(y==b)
とすればy=bのときのxが返ってきます。

OH
OH 2021 年 2 月 27 日
理解不足かも知れませんが、グラフはもう出力されていて、その図に対して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

カテゴリ

Help Center および File Exchangeグラフとネットワーク アルゴリズム についてさらに検索

Community Treasure Hunt

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

Start Hunting!