如何在MATLAB中基于字符串创建具有动态名称的变量



我有下面的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?

将为您提供数据本身。

相关内容

  • 没有找到相关文章

最新更新