gpt4 book ai didi

matlab - 如何在 MATLAB 中加载大文件(~150MB)?

转载 作者:IT王子 更新时间:2023-10-28 23:33:58 25 4
gpt4 key购买 nike

我有一个矩阵形式的大型 MATLAB 文件 (150MB)(即 4070x4070)。我需要在 MATLAB 中处理这个文件,但我似乎无法加载这个文件。我收到“内存不足”错误。有没有其他方法可以加载这种大小的文件?我使用的是 32 位处理器并有 2GB 的 RAM。请帮助我,我处理这个问题已经筋疲力尽了。

最佳答案

Starting从版本 R2011b (ver.7.13) 开始,有一个新对象 matlab.io.MatFileMATFILE作为构造函数。它允许在 MAT 文件中加载和保存部分变量。有关更多详细信息,请参阅文档。这是一个读取部分矩阵的简单示例:

matObj = matfile(filename);
a = matObj.a(100:500, 200:600);

如果您的原始文件不是 MAT 文件,而是某个文本文件,您可以部分读取它并使用 matfile 将这些部分保存到 MAT 文件中的同一变量中以供以后访问。只需记住在构造函数中将 Writable 属性设置为 true。

假设您的文本文件是制表符分隔的并且只包含数字,这里是一个示例脚本,用于按 block 读取数据并将它们保存到 MAT 文件:

blocksize = 100;
startrow = 0;
filename = 'test.mat';
matObj = matfile(filename,'Writable',true);
while true
try
a = dlmread(filename,'\t',startrow,0); %# depends on your file format
startrow = startrow + blocksize;
matObj.a(startrow+(1:blocksize),:) = a;
catch
break
end
end

我现在没有要测试的最新版本,但希望它能正常工作。

关于matlab - 如何在 MATLAB 中加载大文件(~150MB)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com