如何在 matlab 中将 8×8 矩阵转换为 2×32 矩阵
How to make a 8-by-8 matrix to 2-by-32 matrix in matlab
我有 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 行旁边..等等...谢谢
在转置(必需,因为 MATLAB 使用 column-major 索引)到 3D 矩阵后使用 reshape
。然后置换矩阵以将新的第三维与第二维交换,然后重塑并转置
reshape(permute(reshape(A.',8,2,[]),[1,3,2]),[],2).'
我有 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 行旁边..等等...谢谢
在转置(必需,因为 MATLAB 使用 column-major 索引)到 3D 矩阵后使用 reshape
。然后置换矩阵以将新的第三维与第二维交换,然后重塑并转置
reshape(permute(reshape(A.',8,2,[]),[1,3,2]),[],2).'