将矩阵划分为具有相同行数但列数不同的子矩阵

时间:2016-01-21 02:20:16

标签: matlab matrix vectorization

例如,如果我有一个 5000x30矩阵,并且我想获得 5000x3 维度的 10个子矩阵,我该怎么办?在 Matlab 中编写代码。我已经阅读了几个关于这个问题的帖子,this one here for example,但是没有一个帖子保持子矩阵中的行数与主矩阵相同。

由于我将处理非常大的矩阵,我更喜欢使用更快的代码,例如使用Matlab的内置函数,例如mat2cell或任何其他vectorized方法,而不是循环。

2 个答案:

答案 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