0

1つのフォルダーに100個の.datファイルがあります。MATLABですべてのファイルを一度に読み取り、それらの100ファイルの5列目の平均をとることは可能ですか?これは、.datファイルの1つのサンプルです。

ここに画像の説明を入力してください

4

2 に答える 2

3

開始するためのコードを次に示します。

%# get list of 100 .dat files
pathToFolder = '.';
files = dir( fullfile(pathToFolder,'*.dat') );

%# read all files
data = cell(numel(files),1);
for i=1:numel(files)
    fid = fopen(fullfile(pathToFolder,files(i).name), 'rt');
    H = textscan(fid, '%s', 4, 'Delimiter','\n');
    C = textscan(fid, repmat('%f ',1,8), 'Delimiter',' ', ...
        'MultipleDelimsAsOne',true, 'CollectOutput',true);
    fclose(fid);
    H = H{1}; C = C{1};

    %# store numeric data and ignore the header lines
    data{i} = C;
end

%# we assume all tables have the same size
data = cat(3,data{:});
mn = mean(data(:,5,:),3)    %# mean of 5th col across 100 files
于 2012-07-03T09:55:53.307 に答える
0

この@を見てください http://www.mathworks.com/matlabcentral/newsreader/view_thread/161967

あなたの質問全体がここで答えられます。そして、あなたの答えはFAQ @ matlabです

http://matlab.wikia.com/wiki/FAQ

幸運を!

于 2012-07-03T09:48:22.650 に答える