MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   从.mat文件中删除变量 (https://www.labfans.com/bbs/showthread.php?t=24150)

poster 2019-12-10 20:48

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

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



[B]回答:[/B]

有趣的是,您可以将-append选项与[URL="http://www.mathworks.com/help/techdoc/ref/save.html"]SAVE[/URL]一起使用,以[I]有效地[/I]删除.mat文件中的数据。请注意该文档摘录(由我加粗):
[INDENT][INDENT]对于MAT文件, -append将新变量添加到文件中,或[B]将已保存的现有变量值替换为工作区中的值[/B] 。

[/INDENT][/INDENT]换句话说,如果.mat文件中的变量称为A ,则可以使用-append选项使用[I]新[/I]的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个字节。该变量仍在其中,但为空。



[url=https://stackoverflow.com/questions/4268044]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 01:05

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.