查看单个帖子
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 从.mat文件中删除变量

这里有人知道如何从matlab文件中删除变量吗?我知道您可以使用save -append方法将变量添加到现有的matlab文件中,但是没有有关如何从文件中删除变量的文档。

在有人说“只保存它”之前,这是因为我正在将中间处理步骤保存到磁盘上以减轻内存问题,最后每个分析例程将有近10 GB的中间数据。谢谢!



回答:

有趣的是,您可以将-append选项与SAVE一起使用,以有效地删除.mat文件中的数据。请注意该文档摘录(由我加粗):
对于MAT文件, -append将新变量添加到文件中,或将已保存的现有变量值替换为工作区中的值

换句话说,如果.mat文件中的变量称为A ,则可以使用-append选项使用的A副本(已将其设置为[] )保存该变量。 .mat文件中仍然存在一个名为A的变量,但该变量将为空,从而减小了文件的总大小。

这是一个例子:

>> A = rand(1000); %# Create a 1000-by-1000 matrix of random values >> save('savetest.mat','A'); %# Save A to a file >> whos -file savetest.mat %# Look at the .mat file contents Name Size Bytes Class Attributes A 1000x1000 8000000 double 文件大小为7.21 MB左右。现在执行以下操作:

>> A = []; %# Set the variable A to empty >> save('savetest.mat','A','-append'); %# Overwrite A in the file >> whos -file savetest.mat %# Look at the .mat file contents Name Size Bytes Class Attributes A 0x0 0 double 现在文件大小约为169个字节。该变量仍在其中,但为空。



更多&回答...
poster 当前离线   回复时引用此帖