1

我在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(imported to workspace 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 所示。

图1 ,

在工作区中将变量名称(Training_data)更改为 ET1_A_l1 有什么好主意吗?

4

1 回答 1

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'

在此处输入图像描述

于 2012-11-24T08:34:59.320 回答