次元数の異なる配列の三次元グラフの作成について

23 views (last 30 days)
豪斗 中馬
豪斗 中馬 on 10 Nov 2023
Commented: 豪斗 中馬 on 15 Nov 2023
変数x,yがあるとした時に、xは181行1列,yは136行1列の配列であり、x、yに対応するデータ群zが181行136列ある場合にx、yを変数としてzを縦方向にプロット(もしくは曲面)する方法はありますでしょうか

Answers (1)

Atsushi Ueno
Atsushi Ueno on 10 Nov 2023
>xは181行1列,yは136行1列の配列であり、x、yに対応するデータ群zが181行136列ある場合にx、yを変数としてzを縦方向にプロット(もしくは曲面)する方法はありますでしょうか
⇒はい、あります。上記リンク先の Surface and Mesh Plots が該当すると思いますが、meshsurf 等の3次元プロット関数において、x軸及びy軸の情報として下記の説明があります。
>Z と同じサイズの行列、または長さが n のベクトル ([m,n] = size(Z)) として指定します。XY の値を指定しない場合、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
  1 Comment
豪斗 中馬
豪斗 中馬 on 15 Nov 2023
ありがとうございます。
作成できました。

Sign in to comment.

Categories

Find more on 2 次元および 3 次元プロット in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!