印刷を抑制するには、各行の後にセミコロンを付けるだけです。
A = dlmread('fileA');
B = dlmread('fileB');
dlmwrite('result', A * B');
読み取りを高速化する1つの方法は、使用している区切り文字をMatlabに通知することです。これにより、区切り文字を推測する必要がなくなります。たとえば、ファイルがタブ区切りの場合は、次のように使用できます。
A = dlmread('fileA','\t');
または、カンマ区切りの場合は、次を使用できます。
A = dlmread('fileA',',');
それ以外に、別のファイル形式の使用を検討することもできます。ファイルはどこで生成されますか?それらが別のMatlabプロセスによって生成された場合は、Matlabのバイナリ形式で保存できます。これには、およびを使用してアクセスしload
ますsave
。
A = [1 2; 3 4];
save('file.mat','A');
clear A;
load('file.mat','A');
簡単なベンチマークとして、次のマトリックスを2つのファイルに書き込みました。
>> A = [1 2 3; 4 5 6; 7 8 9];
>> dlmwrite('test.txt',A);
>> save('test.mat','A');
次に、2つのベンチマークを実行しました。
>> tic; for i=1:1000; dlmread('test.txt',','); end; toc
Elapsed time is 0.506136 seconds.
>> tic; for i=1:1000; load('test.mat','A'); end; toc
Elapsed time is 0.260381 seconds.
ここで使用しているバージョンload
は、バージョンの半分の時間で入ってきましたdlmread
。適切なサイズの行列に対して独自のベンチマークを実行し、自分に最適なものを確認できます。