创建矩阵索引矩阵

Mar*_*ius 1 matlab

我想创建一个二维向量矩阵.每个向量应包含矩阵中自己位置的x/y索引(或者,如果需要,则为i,j).

基本上我想要这样的东西:

具有二维向量的矩阵

我知道我可以在for循环中创建它,但有更简单的方法吗?Matlab对于这样的事情有很多有用的功能,它让我不止一次感到惊讶.

nib*_*bot 5

meshgrid 会让你大部分时间到达那里:

>> [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
Run Code Online (Sandbox Code Playgroud)

你通常不能在Matlab中有一个"向量矩阵".另外两个选择:

  1. 制作矢量的"单元阵列".
  2. 制作三维矩阵(NxMx2),其中第三维索引为X或Y(即行或列)

要实现第二个选项:

coords(:,:,1) = X
coords(:,:,2) = Y
Run Code Online (Sandbox Code Playgroud)

后续问题:你为什么要这样做?

  • 一个有用的猫科动物可以完成剩下的工作:`cat(3,X,Y);` (3认同)