Matlab 如何清除mat文件的变量?

Matlab 如何清除mat文件的变量?,matlab,Matlab,我有一个mat文件,名为save.mat,它有两个变量。我想清除变量并添加一些其他变量。如何在mat文件中清除/添加变量 最好的您可以通过两种方式来实现这一点,一种是通过MatlabGUI,另一种是通过脚本 要在Matlab中实现这一点,只需导航到.mat文件的目录,在命令窗口中运行“clear”(如果需要数据,请确保保存当前工作区!),双击.mat文件即可加载它。从这里,您可以使用工作区删除并向您的心脏内容添加变量 如果要在脚本中执行此操作,请设置如下内容: clear load('save'

我有一个mat文件,名为
save.mat
,它有两个变量。我想清除变量并添加一些其他变量。如何在mat文件中清除/添加变量


最好的

您可以通过两种方式来实现这一点,一种是通过MatlabGUI,另一种是通过脚本

要在Matlab中实现这一点,只需导航到.mat文件的目录,在命令窗口中运行“clear”(如果需要数据,请确保保存当前工作区!),双击.mat文件即可加载它。从这里,您可以使用工作区删除并向您的心脏内容添加变量

如果要在脚本中执行此操作,请设置如下内容:

clear
load('save'); % load the .mat file
clear foo bar % removes the variables 'foo' and 'bar'
baz = 3; % adds the variable 'baz'
save('save'); % save over the old .mat file

要将一个或多个变量添加到现有的
.mat
文件,可以通过指定选项
-append
使用
保存
功能

要从现有
.mat
文件中删除一个或多个变量,您可以:

  • 使用
    load
    功能将
    .mat
    文件加载到
    struct
    中:每个读取变量将存储在struct的一个字段中
  • 使用
    rmfield
    函数,从该结构中删除要从原始
    mat
    文件中删除的变量对应的字段
  • 通过指定选项
    -struct
    ,使用
    save
    功能保存结构:这将允许将结构的字段保存为单个变量
这是实施的一个示例:

% Define some varaible to be saved
a=1
b=2
c=3
% Save the varaibles
save('add_del.mat','a','b','c')
% Define an additional variable
d=4
% Add the new varaible to the ".mat" file
save('add_del.mat','d','-append')
% Load the ".mat" file into a struct
str=load('add_del.mat')
% Delete the field corresponding to the varaible to delete
str=rmfield(str,'b')
% Save the fields of a structure as individual variables
save('add_del.mat','-struct','str')
希望这有帮助


我认为,Qapla'excaza提出了一个很好的建议。要验证
matfile
命令是否按建议工作,请尝试以下操作:

filename = ('file.mat');
m = matfile(filename,'Writable',true);

y = 23;
m.y = y;
clear y
load(filename);
display(y);

y = 24;
m.y = y;
clear y
load(filename);
display(y);

请参阅:为了避免将数据加载到内存中。为什么要保留matfile,但删除其所有内容?删除完整文件。谢谢,但我做了同样的事情,没有发生任何事情。我有一个mat文件,它有一个变量RMode,但是当我尝试使用上面的代码删除它时,它仍然存在于state字段中。为什么会这样?谢谢你的解释。但这似乎并不能解决我的问题。我有一个mat文件,我希望在不将其转换为结构的情况下清除其内容。但您所说的是一个将mat文件转换为结构的示例,但它不会影响原始mat文件。它是如何工作的?对不起,我是matlab新手,我知道了。但是我没有做最后一步。很抱歉但应该有一种方法可以直接修改mat文件的内容,而无需将其转换为结构然后保存。正确的?