我有下面的MATLAB函数,它读取变量var
。例如,结构体cfg
作为var
传递。在这种情况下,我使用inputname(1)
成功地将此字符串表示恢复为"cfg"。我也可以成功地保存为"cfg.mat"。但是,以"cfg"加载到内存中是不起作用的。我曾考虑过使用eval
,但一直未能使其发挥作用。
function data_from_mat = optimize2disk( var )
%OPTIMIZE2DISK Saves a variable to disk, deletes it from current memory,
% and loads it from disk
%
tempvar = inputname(1);
disp(['Saving ', tempvar, ' to disk...']);
save([pwd, '\', tempvar, '.mat']);
disp(tempvar);
data_from_mat = load([pwd, '\', tempvar, '.mat']);
end
要从内存加载,请执行以下操作:
load([pwd, '\', tempvar, '.mat']);
它会用保存的名称加载里面的任何东西,或者进行
data_from_mat=load([pwd, '\', tempvar, '.mat']);
data_from_mat
将是一个具有与保存的变量名称相对应的字段的结构,因此
data_from_mat=getfield(data_from_mat,'varname'); %// instead of 'varname' tempvar?
将为您提供数据本身。