Matlab 创建矩阵索引的矩阵

Matlab 创建矩阵索引的矩阵,matlab,Matlab,我想创建一个二维向量矩阵。每个向量都应该包含其自身在矩阵中位置的x/y索引(或者i,j,如果需要) 基本上我想要这样的东西: 我知道我可以在for循环中创建它,但是有更简单的方法吗?Matlab在这方面有很多有用的函数,这让我不止一次感到惊讶。meshgrid将为您提供大部分帮助: >> [X,Y] = meshgrid(0:2, 0:2) X = 0 1 2 0 1 2 0 1 2 Y =

我想创建一个二维向量矩阵。每个向量都应该包含其自身在矩阵中位置的x/y索引(或者i,j,如果需要)

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


我知道我可以在for循环中创建它,但是有更简单的方法吗?Matlab在这方面有很多有用的函数,这让我不止一次感到惊讶。

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
在Matlab中通常不能有“向量矩阵”。其他两种选择:

  • 制作一个向量的“单元数组”
  • 制作一个三维矩阵(NxMx2),其中三维索引为X或Y(即行或列)
  • 要实施第二个选项:

    coords(:,:,1) = X
    coords(:,:,2) = Y
    

    接下来的问题:为什么要这样做?

    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
    
    在Matlab中通常不能有“向量矩阵”。其他两种选择:

  • 制作一个向量的“单元数组”
  • 制作一个三维矩阵(NxMx2),其中三维索引为X或Y(即行或列)
  • 要实施第二个选项:

    coords(:,:,1) = X
    coords(:,:,2) = Y
    

    接下来的一个问题:你为什么要这样做?

    一只有帮助的猫科动物可以做其余的事情:
    cat(3,X,Y)一只有用的猫科动物可以做其余的事情:
    猫(3,X,Y)