MATLAB ヘルプ センター
2 次元および 3 次元のグリッド
[X,Y] = meshgrid(x,y)
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)
[X,Y,Z] = meshgrid(x)
[X,Y] = meshgrid(x,y) はベクトル x および y に含まれる座標に基づいて 2 次元のグリッド座標を返します。X は各行が x のコピーである行列、Y は各列が y のコピーである行列です。座標 X および Y によって表されるグリッドには length(y) 個の行と length(x) 個の列が含まれます。
X
Y
x
y
length(y)
length(x)
例
[X,Y] = meshgrid(x) は [X,Y] = meshgrid(x,x) と同じであり、グリッド サイズが length(x) 行 length(x) 列の正方形グリッド座標を返します。
[X,Y] = meshgrid(x,x)
[X,Y,Z] = meshgrid(x,y,z) はベクトル x、y および z によって定義される 3 次元グリッド座標を返します。X、Y および Z によって表されるグリッドのサイズは length(y) x length(x) x length(z) です。
Z
z
length(z)
[X,Y,Z] = meshgrid(x) は [X,Y,Z] = meshgrid(x,x,x) と同じであり、グリッド サイズが length(x) x length(x) x length(x) の 3 次元グリッド座標を返します。
[X,Y,Z] = meshgrid(x,x,x)
すべて折りたたむ
ベクトル x によって定義された x 座標およびベクトル y によって定義された y 座標からなる 2 次元グリッド座標を作成します。
x = 1:3; y = 1:5; [X,Y] = meshgrid(x,y)
X = 5×3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
Y = 5×3 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
式 x2+y2 を 2 次元グリッド上で評価します。
X.^2 + Y.^2
ans = 5×3 2 5 10 5 8 13 10 13 18 17 20 25 26 29 34
等間隔の x 座標および y 座標からなる 2 次元グリッドを区間 [-2,2] で作成します。
x = -2:0.25:2; y = x; [X,Y] = meshgrid(x);
関数 f(x,y)=xe-x2-y2 を 2 次元グリッド上で評価してプロットします。
F = X.*exp(-X.^2-Y.^2); surf(X,Y,F)
R2016b 以降では、グリッド上の操作を行う前にグリッドを必ず作成する必要はありません。たとえば、式 xe-x2-y2 を計算すると、ベクトル x と y が暗黙的に拡張されます。暗黙的な拡張に関する詳細については、配列と行列の演算を参照してください。
surf(x,y,x.*exp(-x.^2-(y').^2))
x、y および z 座標から 3 次元グリッド座標を区間 [0,6] で作成し、式 x2+y2+z2 を評価します。
x = 0:2:6; y = 0:1:6; z = 0:3:6; [X,Y,Z] = meshgrid(x,y,z); F = X.^2 + Y.^2 + Z.^2;
グリッドのサイズを決定します。3 つの座標ベクトルの長さが異なるため、グリッド点の直方体が形成されます。
gridsize = size(F)
gridsize = 1×3 7 4 3
単入力構文を使用して、x で定義された座標に基づく一定間隔の 3 次元グリッドを生成します。新しいグリッドはグリッド点の立方体を形成します。
[X,Y,Z] = meshgrid(x); G = X.^2 + Y.^2 + Z.^2; gridsize = size(G)
gridsize = 1×3 4 4 4
点の x 座標。ベクトルとして指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
点の y 座標。ベクトルとして指定します。
点の z 座標。ベクトルとして指定します。
グリッド上の x 座標。2 次元配列 (2 つの入力) または 3 次元配列 (3 つの入力) として返されます。
グリッド上の y 座標。2 次元配列 (2 つの入力) または 3 次元配列 (3 つの入力) として返されます。
グリッド上の z 座標。3 次元配列として返されます。
meshgrid
ndgrid
meshgrid と ndgrid は異なる出力形式を使用してグリッドを作成します。具体的には、これらの関数の一方を使用して作成されたグリッドをもう一方のグリッド形式と比較すると、最初の 2 つの次元が入れ替わっています。MATLAB® 関数には meshgrid の形式のグリッドを使用する関数も ndgrid の形式を使用する関数もあるため、2 つの形式の間でグリッドを変換することがよくあります。
これらのグリッド形式は、pagetranspose (R2020b 以降) または permute を使用してグリッド配列の最初の 2 つの次元を入れ替えることで変換できます。たとえば、meshgrid で 3 次元グリッドを作成します。
pagetranspose
permute
[X,Y,Z] = meshgrid(1:4,1:3,1:2);
次に、各グリッド配列の最初の 2 つの次元を転置してグリッドを ndgrid の形式に変換し、結果を ndgrid の出力と比較します。
Xt = pagetranspose(X); Yt = pagetranspose(Y); Zt = pagetranspose(Z); [Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2); isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans = logical 1
pagetranspose の使用は、他の次元はそのままで最初の 2 つの次元を並べ替えるのと同じです。この操作は permute(X,[2 1 3:ndims(X)]) を使用して実行することもできます。
permute(X,[2 1 3:ndims(X)])
すべて展開する
backgroundPool
ThreadPool
meshgrid 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
meshgrid 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
入力は浮動小数点の double または single でなければなりません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
meshgrid 関数は分散配列をサポートしますが、次の使用上の注意および制限があります。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
R2006a より前に導入
griddedInterpolant | mesh | ndgrid | combinations | surf
griddedInterpolant
mesh
combinations
surf
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ