用Matlab枚举坐标创建矩阵
是否有一种有效的方法(例如,不手动使用for循环)在Matlab中创建一个矩阵,以枚举给定大小矩阵的二维坐标 例如,如果给我一个m x n矩阵,我希望得到的mn x 2矩阵如下:用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
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
密切相关