【发布时间】:2016-02-12 01:55:22
【问题描述】:
我有一个名为 save.mat 的 mat 文件,它有两个变量。我想清除变量并添加一些其他变量。如何在 mat 文件中清除/添加变量?
最好的
【问题讨论】:
-
请参阅:
matfile以避免将数据加载到内存中。 -
为什么要保留 matfile 却删除它的所有内容?删除整个文件。
标签: matlab
我有一个名为 save.mat 的 mat 文件,它有两个变量。我想清除变量并添加一些其他变量。如何在 mat 文件中清除/添加变量?
最好的
【问题讨论】:
matfile 以避免将数据加载到内存中。
标签: matlab
您可以通过 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 文件添加一个或多个变量,您可以通过指定选项-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')
希望这会有所帮助。
卡普拉'
【讨论】:
我认为@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);
【讨论】: