0

それぞれ多くの異なる変数を持つ .mat ファイルの束を含むフォルダーがあります。個々の変数を個別の行列に格納したいと考えています。すべてのファイルを名前でロードする for ループを作成しましたが、最後の .mat ファイルしか得られません。私はMatlabが初めてで、これを行うには本当に簡単な方法があると思いますが、何も見つけることができませんでした.

ありがとう!

編集:わかりましたので、それぞれに変数 X を持つ .mat ファイルがたくさんあります。すべての X を、個別の .mat ファイルに対応する個別の行列に格納したいと考えています。

4

2 に答える 2

1

Load(filename)単独で変数をワークスペースにロードしますが、お気づきのように、これらは同じ名前の新しい変数をロードするたびに上書きされます。 S = load(filename)変数を構造体配列にロードします。その後、各変数に名前でアクセスし、配列に保存できます。例えば:

% create two files containing variables with the same names    
x = 1;
y = 2;
save("test1.mat")

x = 10;
y = 20;
save("test2.mat")

% load the saved files and store the variables x and y in vectors
for i  = 1:2
    temp = load(["test", num2str(i), ".mat"]);
    xVec(i) = temp.x;
    yVec(i) = temp.y;
end

編集に応じて、各ファイルのすべての変数を次のようなマトリックスに保存できます。

% load the saved files and store the contents of each file in a matrix
dataArray = {};
for i  = 1:2
    temp = load(["test", num2str(i), ".mat"]);
    dataArray{i} = [temp.x, temp.y];
end

cell 配列dataArrayには、各ファイルの行列が含まれます。

于 2013-03-14T18:23:59.973 に答える
0

ファイルを変数にロードする

ld{ii} = load( ファイル名{ii} );

ld{ii}ファイル内の変数ごとにフィールドを持つ構造体になりましたfilename{ii}

于 2013-03-14T18:11:18.850 に答える