【问题标题】:Matlab cell saving to .mat (OUT OF MEMORY)Matlab 单元格保存到 .mat(内存不足)
【发布时间】:2014-03-12 00:37:40
【问题描述】:

我在单元格 (630x5) 中有大量数据。单元格中的每个元素都包含矩阵 30xfew_thousand,计算后我将其循环写入单元格。在和我将它保存到 mat 文件,但是在填充单元格时,Matlab 通知没有更多的内存可以使用。所以我决定逐行填充这个单元格,清除其他单元格并通过在 mat 文件末尾添加它来保存新的(当前)行。不幸的是,使用保存命令保存一行单元格存在问题

save('new.mat','coefficients{i,:}','-append');% i-iteration in the loop

唯一的办法是保存整个细胞,但在这种情况下是不可能的。

有没有办法保存一行或单元格的特定元素? save 命令中的第二个参数应该是变量的名称,没有办法创建数千个,没有意义。对于如何将大单元格保存到 mat 文件的任何想法,我将不胜感激。

【问题讨论】:

    标签: matlab save cell


    【解决方案1】:

    我会尝试matfile 命令:

    m = matfile('new.mat','Writable',true)
    m.coefficients=cell(350,5)
    for ix=1:350
       ...
       m.coefficients{ix,:}
    end
    

    这应该在每次迭代时写入文件系统。

    【讨论】:

    • 非常感谢!它工作正常。附加时,只有括号应该是 '()' 而不是 '{}' -> m.coefficient{ix,:}。
    猜你喜欢
    • 2012-07-01
    • 2015-05-23
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2011-04-03
    相关资源
    最近更新 更多