【グラフの作成】Y軸の値からX軸の値を作成する

8 次查看(过去 30 天)
RK
RK 2022-1-13
评论: RK 2022-1-14
MATLABアプリを作成しています。
グラフを作成するアプリを検討しているのですが、
Y軸の値となる部分から、X軸の値を作成したいと考えています。
具体的には、
下記のようなデータがあるとします。
data = [0 1 2 3 4 5] ←これがY軸の値になるとします。
find関数などで、例えば上記のデータ内の2を見つけた場合、
そこを0とするようなX軸の値を作成したいです。
data2=[-2 -4 0 2 4]のような感じ(幅2で作成する場合)
その後、上記のX,Yの値を使用したグラフを作成したいと考えています。
plot(data2,data) で作成。
上記、下線部のようなことは可能でしょうか。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2022-1-13
質問の文脈通りに解釈すれば下記のようになります
n = 2; % 探す値
data = [0 1 2 3 4 5];
idx = find(data == n) - 1; % 探す値が含まれるインデックス(0始まり)
data2 = (0:2:10) - idx*2; % 見つかったインデックスに応じてx軸を移動する
plot(data2,data);
  5 个评论
Atsushi Ueno
Atsushi Ueno 2022-1-14
>idxに2をかけたのは、幅2で作成する場合としたためでしょうか。
そうです。
質問中に挙がった例をカバーする為だけのマジックナンバーを含むプログラムなので具合が良くないですね。
汎用的にするには、x軸のスケールとオフセットを変数にします。以下の様にすれば良いと思います。
scale = 2; % 幅
offset = idx * scale; % オフセット量
array = 1:numel(app.data(:, app.Spinner2.Value)); % y軸と同じサイズのベクトル
datax = array * scale - offset;
RK
RK 2022-1-14
ありがとうございます。
上記、納得しました。
ご丁寧に対応いただきありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 App Designer を使用したアプリ開発 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!