我有一个矩阵A = MxN在Matlab中,其中M = 23和N = 780。矩阵在Matlab中的重组
我想每次都取23行15列(780/15 = 52次)并每次追加。
我希望得到一个矩阵B = GXT,其中G是23 * 52,T是15
我试图用重塑,whitout任何好的结果。
你是否建议我一个解决方案?
我有一个矩阵A = MxN在Matlab中,其中M = 23和N = 780。矩阵在Matlab中的重组
我想每次都取23行15列(780/15 = 52次)并每次追加。
我希望得到一个矩阵B = GXT,其中G是23 * 52,T是15
我试图用重塑,whitout任何好的结果。
你是否建议我一个解决方案?
如何使用reshape
和permute
:
B = reshape(permute(reshape(A, [23,15,52]), [1 3 2]), [23*52 15]);
最佳,
这是一个有趣的问题。你有没有你试过的代码?我想我会得到你想要做的,所以我会在这里创建一个代码。
%Initialize matrix A here with whatever numbers you have.
ResultMat = zeros((23*52),15); TempColsMat = zeros(1,15);
for row = 1 : 23
k = 0;
for col = 1 : 52
TempColsMat = A(row,(k : (k + 15)));
ResultMat = (TempColsMat(:,:),:);
k = k + 15;
end
end
我花了一段时间来弄明白,因为我没有MATLAB在我的面前,但是我觉得这个代码应工作。祝你的项目好运!
@gnovice谢谢,我没有理解这部分的问题,但它是有道理的。我已经更新了我的答案。 – Ratbert
它工作正常!谢谢。只是一个缺少关闭排列的支架。 – Giovanna
好的,我已经纠正了我的答案。不要忘记接受答案来解决问题。 – Ratbert