ランダムな NxN 行列を生成するために、matlab で小さなループを作成しました。ループは
tic
for i=1:10000
u=rand(1,10000);
tau(i,:)=d.*(u(1,:)-0.5);
end
toc
最初にループルーチンを 1 回だけ試しましたが、
u=rand(1,10000);
tau=d.*(u(1,:)-0.5);
これにより、0.000169 秒でタウが得られました。ループには約 1.69 秒かかると想定しました。そうではなく、ファンが熱狂して 555.018280 秒かかりました。
a)速度が反復回数に比例しない理由はありますか? b)ルーチンを何度も実行するのに
時間がかかる理由
c) これを高速化する方法 (実際にはより大きな行列を生成したい)。同じ種類の 1'000'000x1'000'000 マトリックス?