eval
MATLABの関数を使用して多数のパラメーター配列を作成しようとしています。
基本的にdata
、ループを使用して生成された名前を持つ大きなデータセット ( ) をいくつかの小さなデータセットに分割しようとしています。現状では、私は使用しています:
variablename = ['a' num2str(academy) '_s' num2str(year) '_g' num2str(gender)];
%loop through all people, if match various classifications, write to variablename
for row = 1:totalrows;
if data(row,2) == academy;
if data(row,1) == year;
if data(row,70) == gender;
eval([variablename ' = [ data(row,8) data(row,9) data(row,73) data(row,76) data(row,77) data(row,78) data(row,79) ]; ' ]); % ; supresses output (i.e. stop it showing value of each variable
end%gender if
end%year if
end %academy if
end %row loop
これはかなりうまく機能しますが、すべてのif
ステートメントに一致する 2 番目のレコードを取得するたびに、最初のデータ セットが上書きされます。
私の質問は、eval
データを書き込むために使用して作成された変数の行を指定するにはどうすればよいですか?
前もって感謝します