【问题标题】:Split large matrix to smaller ones将大矩阵拆分为较小的矩阵
【发布时间】:2013-04-28 06:38:04
【问题描述】:

我有一个15276x30991 矩阵,我想将它拆分为3 更小的矩阵,我知道我必须使用mat2cell 函数,但我无法正确设置尺寸。您能帮我解决一下如何实现吗?

示例对于矩阵300x25 拆分为10 矩阵30x25 维度应该是

Mcell = mat2cell(A,repmat(30,10,1),25)

【问题讨论】:

  • 当您说 3 个较小的矩阵时,您希望新矩阵的大小是多少?
  • 我希望是 16x31
  • 如何使它三个更小的矩阵?请更新问题,以便更清楚地了解您想要实现的目标。
  • 好吧,对不起,因为我的矩阵很大,我想让这个大矩阵尽可能小。所以把它分成更小的矩阵是我试图做的内存问题的解决方案联想记忆(神经网络)。
  • @Konstantinos:您的意思是要将其沿行拆分为三个矩阵吗?

标签: matlab matrix


【解决方案1】:

要将矩阵沿行拆分为三个矩阵,请尝试:

>> x = rand(15276,100);
>> C = mat2cell(x, ones(3,1)*(size(x,1)/3), size(x,2))
C = 
    [5092x100 double]
    [5092x100 double]
    [5092x100 double]

这假设 size(x,1) 可以被 3 整除,这在您的情况下是正确的:15276/3 = 5092

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多