【问题标题】:How to clear variables of a mat file?如何清除mat文件的变量?
【发布时间】:2016-02-12 01:55:22
【问题描述】:

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

最好的

【问题讨论】:

  • 请参阅:matfile 以避免将数据加载到内存中。
  • 为什么要保留 matfile 却删除它的所有内容?删除整个文件。

标签: matlab


【解决方案1】:

您可以通过 Matlab GUI 或脚本两种方式完成此操作。

要在 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 文件,它有一个变量 RMode,但是当我尝试使用上面的代码删除它时,它仍然存在于 state 字段中。为什么会这样?
【解决方案2】:

要向现有的.mat 文件添加一个或多个变量,您可以通过指定选项-append 来使用save 函数。

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

  • 使用load 函数将.mat 文件加载到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')

希望这会有所帮助。

卡普拉'

【讨论】:

  • 感谢您的解释。但这似乎并不能解决我的问题。我有一个 mat 文件,我想清除其内容而不将其转换为结构。但是您所说的是一个将 matfile 转换为 struct 的示例,但它不会影响原始 mat 文件。这个怎么运作?抱歉,我是 matlab 新手。
  • 我明白了。不过我没有做最后一步。对不起。但是应该有一种方法可以直接修改 mat 文件的内容,而无需将其转换为结构然后保存。对吗?
【解决方案3】:

我认为@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);

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2017-01-02
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    相关资源
    最近更新 更多