次元数の異なる配列の三次元グラフの作成について
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
変数x,yがあるとした時に、xは181行1列,yは136行1列の配列であり、x、yに対応するデータ群zが181行136列ある場合にx、yを変数としてzを縦方向にプロット(もしくは曲面)する方法はありますでしょうか
0 commentaires
Réponses (1)
Atsushi Ueno
le 10 Nov 2023
>xは181行1列,yは136行1列の配列であり、x、yに対応するデータ群zが181行136列ある場合にx、yを変数としてzを縦方向にプロット(もしくは曲面)する方法はありますでしょうか
⇒はい、あります。上記リンク先の Surface and Mesh Plots が該当すると思いますが、mesh や surf 等の3次元プロット関数において、x軸及びy軸の情報として下記の説明があります。
>Z と同じサイズの行列、または長さが n のベクトル ([m,n] = size(Z)) として指定します。X と Y の値を指定しない場合、surf はベクトル (1:n) とベクトル (1:m) を使用します。行列 X と行列 Y を作成するには、関数 meshgrid を使用できます。
つまりこれらの関数は、x軸及びy軸の情報として1次元配列(軸情報)または2次元配列(グリッド情報)のどちらでもOKです。またx軸及びy軸の情報が無い場合でも、それらを自動的に生成してグラフを表示します。
x = (1:181)'; % xは181行1列の1次元配列(ベクトル)
y = (1:136)'; % yは136行1列の1次元配列(ベクトル)
[xm,ym] = meshgrid(x,y); % xm,ym,zは136行181列の2次元配列(行列)
z = sqrt(xm.^2 + ym.^2); % zも同じく136行181列の2次元配列(行列)
mesh(x,y,z) % mesh(xm,ym,z) % mesh(z) % どれでもOK
Voir également
Catégories
En savoir plus sur 表面プロットとメッシュ プロット dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!