Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Matlab枚举坐标创建矩阵_Matlab_Matrix - Fatal编程技术网

用Matlab枚举坐标创建矩阵

用Matlab枚举坐标创建矩阵,matlab,matrix,Matlab,Matrix,是否有一种有效的方法(例如,不手动使用for循环)在Matlab中创建一个矩阵,以枚举给定大小矩阵的二维坐标 例如,如果给我一个m x n矩阵,我希望得到的mn x 2矩阵如下: 1 1 1 2 1 3 ... 1 n 2 1 2 2 ... m 1 m 2 ... m n 提前谢谢 Robert p.巧妙地使用了kron,给出了一个正确(优雅)的答案,但为了好玩,这里有另一个选择ndgrid mat = [1 2;3 4;5 6;7 8;9 10]; [m,n] = siz

是否有一种有效的方法(例如,不手动使用for循环)在Matlab中创建一个矩阵,以枚举给定大小矩阵的二维坐标

例如,如果给我一个m x n矩阵,我希望得到的mn x 2矩阵如下:

1  1
1  2
1  3
...
1  n
2  1
2  2
...
m  1
m  2
...
m  n
提前谢谢

Robert p.巧妙地使用了
kron
,给出了一个正确(优雅)的答案,但为了好玩,这里有另一个选择
ndgrid

mat = [1 2;3 4;5 6;7 8;9 10];
[m,n] = size(mat);
vec = [kron(1:m,ones(1,n)); kron(ones(1,m),1:n)]'
   1   1
   1   2
   2   1
   2   2
   3   1
   3   2
   4   1
   4   2
   5   1
   5   2
>> mat=zeros(5,2);
>> [nn,mm] = ndgrid(1:size(mat,2),1:size(mat,1))
>> vec = [mm(:) nn(:)]
vec =
     1     1
     1     2
     2     1
     2     2
     3     1
     3     2
     4     1
     4     2
     5     1
     5     2

ind2sub
meshgrid
密切相关