我在维度为D
的Matlab中有一个矩阵(a*b)xc
,具有以下结构:假设a=3, b=4, c=3
D=[1 1 10;
1 2 11;
1 3 17;
1 4 15;
2 1 68;
2 2 6;
2 3 15;
2 4 7;
3 1 5;
3 2 43;
3 3 0;
3 4 5];
D
的第一列包含1
和a
之间的数字,从1
开始并在1
行之后增加b
。 D
的第二列列出[1 2 ... b]'
a
次。
我想用以下结构构造维E
的矩阵(a*b)xc
E=[1 1 10;
2 1 68;
3 1 5;
1 2 11;
2 2 6;
3 2 43;
1 3 17;
2 3 15;
3 3 0;
1 4 15;
2 4 7;
3 4 5];
也许您只是想按第二列对行进行排序,并且认为过于复杂:
E = sortrows(D,2)
对于一般情况下输入数据尚未排序的情况,基于reshape
和permute
的方法将是合适的-
E = reshape(permute(reshape(D,b,size(D,1)/b,[]),[2 1 3]),size(D))