二次元ベクトルの行列を作りたい。すべてのベクトルは、行列内のそれぞれの位置のx / yインデックス(または必要に応じてi、j)を含む必要があります。
基本的に私はこのようなものが欲しい:
これをforループで作成できることはわかっていますが、もっと簡単な方法はありますか? Matlabはそのようなことのために非常に多くの便利な機能を持っています、それは私に何度も驚いた。
回答:
回答№1は5meshgrid
そこにほとんどの方法であなたを得るでしょう:
>> [X,Y] = meshgrid(0:2, 0:2)
X =
0 1 2
0 1 2
0 1 2
Y =
0 0 0
1 1 1
2 2 2
あなたは一般的にMatlabでは "ベクトルの行列"を持つことはできない。
- ベクトルの「セル配列」を作ります。
- 3次元目がXまたはY(つまり、行または列)にインデックス付けされている3次元行列(NxMx2)を作成します。
2番目のオプションを実装するには
coords(:,:,1) = X
coords(:,:,2) = Y
フォローアップの質問:なぜこれをしたいのですか?