在Matlab中通过选择固定距离的行重塑矩阵
我在Matlab中有一个矩阵在Matlab中通过选择固定距离的行重塑矩阵,matlab,matrix,matrix-indexing,Matlab,Matrix,Matrix Indexing,我在Matlab中有一个矩阵D,它的维数(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开始,在b行之后增加1。D的第二列列出了[12…b]a-次 我想用以下结构构造维度(a
D
,它的维数(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
开始,在b
行之后增加1
。D
的第二列列出了[12…b]
a
-次
我想用以下结构构造维度(a*b)xc
的矩阵E
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)
对于输入数据尚未排序的一般情况,基于
重塑
和置换
的方法将适用-
E = reshape(permute(reshape(D,b,size(D,1)/b,[]),[2 1 3]),size(D))