我在 Matlab 2011b 中运行一个需要几天时间的模拟。因此,我在每次迭代时将模拟数据记录在数据结构中,然后记录到文件(*.mat 格式)中。我正在观察我的模拟/数据记录的特殊行为。我观察到记录的 mat 文件一旦超过 256 MB 左右就会被 128 字节文件替换。我不确定大小,但我观察到文件大小接近 256 MB 或以下,然后被 128 字节文件替换。我想知道是否有人有类似的问题。解决方法是什么?是否存在高达 256MB 左右的 Matlab 工作区内存限制?有没有办法改变这个限制?
我正在使用 Matlab 2011b 版本,并使用并行计算工具箱在不同的 Matlab 工作人员中运行我的脚本的多个实例(我的服务器中最多 12 个内核)。他们在每个工人中的模拟都是独立的。Matlab 2011b 在 Linux/CentOS/Mac 上运行,观察结果涵盖所有工作人员,甚至在 Windows 7 中。因此,我认为这是可以调整的 Matlab 设置或配置。非常感谢任何建议或解决方法。
更新:我正在更新我的代码正在执行的示例脚本。迭代指数可以根据模拟时间增加:
%Matlab workspace memory test
% filename: sim_workspace_mem_test.m
clear; clc;
TotalData=[];
for i=1:1000
for j=1:1000
for k=1:100
data.x=rand(100,100);
data.y=randi(100,100);
TotalData{i,j,k}=data;
end
filename='SimData';
save(filename, 'TotalData');
end
end