4

MatLab では、(大量のコードを実行した後) 複数の .mat ファイルが .mat ファイルに出力されます。各 .mat ファイルの実際の matlab 名が呼び出されますが、コマンドをresults使用してそれらを別のファイルに書き込んでいます。saveファイルの小さなサブセットは次のようになります。

results_test1_1.mat
results_test1_2.mat
results_test1_3.mat
results_test1_4.mat

results_test2_1.mat
results_test2_2.mat
results_test2_3.mat
results_test2_4.mat

ここで、各テストの結果を比較したいと思います。つまり、4 つの .mat ファイルすべてを読み込んで、それらをグラフに結合する必要があります。1 つのファイルを読み込んで最終的なグラフを作成することは問題ありません。しかし、すべてのファイルが同じ matlab name を持っているため、resultsそれらを繰り返しロードすることはオプションではありません (少なくとも、私がまだ知っているものではありません)。

これらすべてのファイルをロードして、構造内の異なる変数に保存する方法はありますか (1 つのテスト セットのみに関して)。これをすべて手作業で行うのは大変な作業だからです。

この方法を使用しようとしました: Load Multiple .mat Files to Matlab workspace but I get Invalid field nameerror onloaded.(char(file)) = load(file);

4

1 に答える 1

3

load変数(できればセル配列)に入れることができます

results = cell( 2, 4 ); % allocate
for testi=1:2
    for resi = 1:4
        filename = sprintf('results_test%d_%d.mat', testi, resi );
        results{testi,resi} = load( filename );
    end
end

これで、すべての結果がresultsセル配列に格納され、格納された変数にアクセスできます。

results{1,3}.someVar % access variable someVar (assuming such variable was saves to the corresponding mat file
于 2013-06-10T18:29:26.053 に答える