我A
是一个8
- by - 8
矩阵。我想取最后6行并将它们放在第一行和第二行旁边,以便矩阵A
成为2
- by - 32
。
编辑:
A =
12,6872713121256 12,0602414786595 10,3270660536998 7,80915144314411 10,0045468077317 9,60906828665612 8,31320998311920 6,36510295973004
12,0602414786595 12,6872713121256 12,0602414786595 10,3270660536998 9,38969514490848 10,0045468077317 9,60906828665612 8,31320998311921
10,3270660536998 12,0602414786595 12,6872713121256 12,0602414786595 7,92932345092466 9,38969514490848 10,0045468077317 9,60906828665611
7,80915144314411 10,3270660536998 12,0602414786595 12,6872713121256 5,89043977575553 7,92932345092466 9,38969514490847 10,0045468077317
10,0045468077317 9,38969514490848 7,92932345092466 5,89043977575553 7,90694573827892 7,48897349750382 6,39213878381770 4,80849938907536
9,60906828665612 10,0045468077317 9,38969514490848 7,92932345092466 7,48897349750382 7,90694573827892 7,48897349750382 6,39213878381770
8,31320998311920 9,60906828665612 10,0045468077317 9,38969514490847 6,39213878381770 7,48897349750382 7,90694573827892 7,48897349750382
6,36510295973004 8,31320998311921 9,60906828665611 10,0045468077317 4,80849938907536 6,39213878381770 7,48897349750382 7,90694573827892
当我输入这段代码时,Dans解决方案没有给出我想要的东西:Ry=reshape(A.',[],2).';
我希望将第一行和第二行保留在那里,我只想移动其他行(行从3到8)并将它们放在第1行和第2行旁边。这样第3行就是下一行到第1行..第4行在第2行旁边。第5行在第1行和第3行旁边...第6行在第2行和第4行旁边...依此类推......谢谢
答案 0 :(得分:1)
在转置(必要因为MATLAB使用column-major索引)到3D矩阵后使用reshape
。然后置换矩阵以将新的第三维与第二维交换,然后重新整形并转置回来
reshape(permute(reshape(A.',8,2,[]),[1,3,2]),[],2).'