Matlab 如何从矩阵中分离行?
我有一个非常大的矩阵,大小是16384 x 16。我需要从中获得一个512 x 512的矩阵。矩阵应按如下方式连接:, 假设L是大小为16384 x 16的矩阵。默认情况下,L的排列方式如下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矩阵,并获得了正确的结果,但我无法为一个更大
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,[]);