a01.dat、a02.dat... a51.dat という形式で名前が付けられた ".dat" の番号付きシーケンスを MATLAB にロードしようとしています。以下のコードで eval() 関数を使用しました。
%% To load each ".dat" file for the 51 attributes to an array.
a = dir('*.dat');
for i = 1:length(a)
eval(['load ' a(i).name ' -ascii']);
end
attributes = length(a);
eval 関数でロードされたデータを簡単に操作できなかったため、問題が発生しました。そして、コミュニティが eval の使用に強く反対していることがわかりました。以下のコードで csvread() を使用しました。
% Scan folder for number of ".dat" files
datfiles = dir('*.dat');
% Count Number of ".dat" files
numfiles = length(datfiles);
% Read files in to MATLAB
for i = 1:1:numfiles
A{i} = csvread(datfiles(i).name);
end
csvread() は機能しますが、ファイルを読み取りますが、ファイルを読み取るときに順序が乱れます。最初に a01.dat を読み取り、次に a01.dat、a02.dat の代わりに a10.dat と a11.dat を読み取ります。各ファイルの内容は符号付きの数値です。一部はコンマ区切りの単一列で、これは均等に分割されています。したがって、a01.dat のコンテンツはカンマ区切りで、a02.dat のコンテンツは 1 つの列にあります。
どうすればこれを処理できますか?