フィルターのクリア

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

8 ビュー (過去 30 日間)
豪斗 中馬
豪斗 中馬 2023 年 11 月 10 日
コメント済み: 豪斗 中馬 2023 年 11 月 15 日
変数x,yがあるとした時に、xは181行1列,yは136行1列の配列であり、x、yに対応するデータ群zが181行136列ある場合にx、yを変数としてzを縦方向にプロット(もしくは曲面)する方法はありますでしょうか

回答 (1 件)

Atsushi Ueno
Atsushi Ueno 2023 年 11 月 10 日
>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 件のコメント
豪斗 中馬
豪斗 中馬 2023 年 11 月 15 日
ありがとうございます。
作成できました。

サインインしてコメントする。

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!