我有以下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
答案 0 :(得分:2)
从内存中加载它:
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?
会自动提供数据。