我在维度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];
答案 0 :(得分:2)
也许您只想按第二列对行进行排序,并且认为过于复杂:
E = sortrows(D,2)
Best,Nras。
答案 1 :(得分:1)
对于尚未对输入数据进行排序的一般情况,基于reshape
和permute
的方法适合 -
E = reshape(permute(reshape(D,b,size(D,1)/b,[]),[2 1 3]),size(D))