在工作区中保存正确的变量名称

时间:2012-11-24 04:30:50

标签: save matlab-load

我在matlab中有一个函数。

function [MEAN STD]=result(data)
MEAN=[mean(data)];
STD=std(data);
Training_data=[MEAN STD]
savefilename=sprintf('%s',inputname(1))
save(savefilename,'Training_data')
end

我设置数据的文件名= ET1_A_l1(导入工作区alrdy)(ET1_A_l1 = [1; 2; 1; 3; 1; 4]以查找所选数据的均值和标准(ET1_A_l1),并将统计特征保存到.mat表格如下图所示:

>>[MEAN STD]=result(ET1_A_l1)

因此,保存文件的名称为ET1_A_l1.mat,我将ET1_A_l1.mat导入工作区,它显示“Training_data”,如图1所示。

figure 1

将工作空间中的变量名称(Training_data)更改为ET1_A_l1是否有任何好主意?

1 个答案:

答案 0 :(得分:0)

要在加载后更改变量名称(不是字段名称),请尝试以下操作:

clear all; close all;

fname = 'ET1_A_l1';
Training_data=[0.5 .1]; % test data

savefilename=sprintf('%s', [fname '.mat']);
save(savefilename,'Training_data');

clear Training_data;

% important line
eval([fname '=importdata(''' savefilename ''');']);

编辑直接更改字段名称:

function [MEAN STD]=result(data)
    MEAN = mean(data);
    STD = std(data);
    varname = inputname(1);
    eval([varname '=[MEAN STD];']);
    savefilename = sprintf('%s',varname);
    save(savefilename, varname);
end

>> ET1_A_l1=[1;2;1;3;1;4];
>> >> [m s] = result(ET1_A_l1)

m =
     2
s =
    1.2649

>> clear all;
>> in = load('ET1_A_l1');

>> fieldnames(in)
ans = 
    'ET1_A_l1'

enter image description here