1

これは私の現在のmatlabコードです:

a = load('m1.txt');
b = load('m2.txt');
c = a*b;
fid = fopen('Matrix.txt','wt');
for ii = 1:size(c,1)
fprintf(fid,'%g\t',c(ii,:));
fprintf(fid,'\n');
end
fclose(fid)

基本的には 2 つのファイルを読み込み、その結果を乗算して乗算された行列を取得し、それをファイルに書き込みます。

これを行うためのキャッシュフレンドリーな方法があるかどうかを調べると思います。しかし、マトリックスは他のプログラミング言語とは対照的に、この分野ではある程度効率的だと思います。ヒントやサンプルコードはありますか?

4

2 に答える 2

2

saveコマンドを使用して、ディスクへの書き込みループを簡略化できます。

save Matrix.txt c -ascii

これにより、変数'c'がASCII形式でディスクに書き込まれます。

于 2012-10-10T22:16:15.170 に答える
2

Matlab の行列乗算は非常に効率的です。すでにあるものよりもうまくやれるとは思いません。

于 2012-10-10T22:06:27.740 に答える