Matlab重塑水平猫

Ste*_*fan 6 arrays matlab

嗨,我想重塑一个矩阵,但重塑命令没有按照我想要的方式对元素进行排序.我有元素的矩阵:

A B
C D
E F
G H
I K
L M
Run Code Online (Sandbox Code Playgroud)

并希望重塑为:

A B E F I K
C D G H L M
Run Code Online (Sandbox Code Playgroud)

所以我知道我想要有多少行(在这种情况下为2),所有2行的"组"应该水平附加.这可以在没有for循环的情况下完成吗?

Lui*_*ndo 4

reshape你可以用二加一来完成permute。让我们n表示每组的行数:

y = reshape(permute(reshape(x.',size(x,2),n,[]),[2 1 3]),n,[]);
Run Code Online (Sandbox Code Playgroud)

具有 3 列的示例n=2

>> x = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
x =
     1     2     3
     4     5     6
     7     8     9
    10    11    12
>> y = reshape(permute(reshape(x.',size(x,2),n,[]),[2 1 3]),n,[])
y =
     1     2     3     7     8     9
     4     5     6    10    11    12
Run Code Online (Sandbox Code Playgroud)