Matlab 如何从矩阵中分离行?

Matlab 如何从矩阵中分离行?,matlab,matrix,Matlab,Matrix,我有一个非常大的矩阵,大小是16384 x 16。我需要从中获得一个512 x 512的矩阵。矩阵应按如下方式连接:, 假设L是大小为16384 x 16的矩阵。默认情况下,L的排列方式如下 L = [L1 L2 L3 . . L32]. 我需要得到L,这样,G(即新的512x512矩阵) 这里每个L是一个512x16矩阵。最初,我尝试了一个32x32矩阵,并获得了正确的结果,但我无法为一个更大

我有一个非常大的矩阵,大小是16384 x 16。我需要从中获得一个512 x 512的矩阵。矩阵应按如下方式连接:, 假设L是大小为16384 x 16的矩阵。默认情况下,L的排列方式如下

    L = [L1
         L2
         L3
         .
         .
         L32]. 
我需要得到L,这样,G(即新的512x512矩阵)

这里每个L是一个512x16矩阵。最初,我尝试了一个32x32矩阵,并获得了正确的结果,但我无法为一个更大的矩阵。我该怎么办?下面是我使用的代码

       W1 = 32;
       Ans1 = L(1:W1,:);
       Ans2 = L(W1+1:end,:);
       G = [Ans1,Ans2];
谢谢

一种方法与&-


我可以知道为什么我们应该使用[1 3 2]和大小(L,2)吗?@Roshni191好的
大小(L,2)
用于将输入数组重塑为3D数组,然后我们通过在
3
(dim-3)和
2
(行)之间交换尺寸来排列(重新排列尺寸)。最后一步是重塑回二维阵列。
       W1 = 32;
       Ans1 = L(1:W1,:);
       Ans2 = L(W1+1:end,:);
       G = [Ans1,Ans2];
cutlen = 512;  %// "Cut" after every cutlen rows
G = reshape(permute(reshape(L,cutlen,[],size(L,2)),[1 3 2]),cutlen,[]);