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

データのfilename=ET1_A_l1(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をワークスペースにインポートすると、図1に示すように「Training_data」が表示されます。

図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 に答える