例如,如果我有一个 5000x30矩阵,并且我想获得 5000x3 维度的 10个子矩阵,我该怎么办?在 Matlab 中编写代码。我已经阅读了几个关于这个问题的帖子,this one here for example,但是没有一个帖子保持子矩阵中的行数与主矩阵相同。
由于我将处理非常大的矩阵,我更喜欢使用更快的代码,例如使用Matlab的内置函数,例如mat2cell
或任何其他vectorized
方法,而不是循环。
答案 0 :(得分:1)
根据@beaker评论,使用reshape(A, 5000, 3, 10)
解决了我的问题。
答案 1 :(得分:0)
A = rand(5000,30);
b = {}; % Somewhere to store sub-matrices
for k = 1:10
b{k} = A(:, (k*3-2):(k*3));
end