【グラフの作成】Y軸の値からX軸の値を作成する
16 ビュー (過去 30 日間)
古いコメントを表示
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) で作成。
上記、下線部のようなことは可能でしょうか。
0 件のコメント
採用された回答
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
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;
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で App Designer を使用したアプリ開発 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!