如何在 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).'