如何在 MATLAB 中创建和保存大型数据集?
How to create and save a large dataset in MATLAB?
我有一个 200 x 200 x 200 x 3 张量维度。我想在 MATLAB 中生成一个包含 7000 个这些张量的数据集,以保存在单个 .mat 文件(或其他可以在 Python) 大小为 7000 x 200 x 200 x 200 x 3。如何在循环中这样做而不将这些变量存储在内存中而是直接将它们保存在文件中?
您可以根据您的变量生成一个名称,并将其简单地存储在同一个 .mat 文件中。
您需要添加“-append”标志,这样文件才不会被覆盖。
您可能还必须在循环结束时删除临时变量。
类似于:
for i = 1:10
tensor = newTensor();
eval(['tensor_' num2str(i)] '=tensor;');
save(['path/tensor_.mat'], ['tensor_' num2str(i)], '-append');
eval(['clearvars tensor_' num2str(i) ';']);
end
有人在他们的网站上问了一些非常相似的问题
https://uk.mathworks.com/matlabcentral/answers/236354-saving-mat-files-in-a-for-loop
我有一个 200 x 200 x 200 x 3 张量维度。我想在 MATLAB 中生成一个包含 7000 个这些张量的数据集,以保存在单个 .mat 文件(或其他可以在 Python) 大小为 7000 x 200 x 200 x 200 x 3。如何在循环中这样做而不将这些变量存储在内存中而是直接将它们保存在文件中?
您可以根据您的变量生成一个名称,并将其简单地存储在同一个 .mat 文件中。 您需要添加“-append”标志,这样文件才不会被覆盖。 您可能还必须在循环结束时删除临时变量。
类似于:
for i = 1:10
tensor = newTensor();
eval(['tensor_' num2str(i)] '=tensor;');
save(['path/tensor_.mat'], ['tensor_' num2str(i)], '-append');
eval(['clearvars tensor_' num2str(i) ';']);
end
有人在他们的网站上问了一些非常相似的问题 https://uk.mathworks.com/matlabcentral/answers/236354-saving-mat-files-in-a-for-loop