Filter löschen
Filter löschen

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

23 Ansichten (letzte 30 Tage)
RK
RK am 13 Jan. 2022
Kommentiert: RK am 14 Jan. 2022
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) で作成。
上記、下線部のようなことは可能でしょうか。

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu App Designer を使用したアプリ開発 finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!