我已經在matlab中編寫了一個小循環來生成一個隨機NxN矩陣。循環是for循環中的計算速度
tic
for i=1:10000
u=rand(1,10000);
tau(i,:)=d.*(u(1,:)-0.5);
end
toc
我第一次嘗試循環程序只有一次,
u=rand(1,10000);
tau=d.*(u(1,:)-0.5);
這給了我頭在0.000169秒。我認爲循環將花費大約1.69s。它沒有,它花了555.018280s與球迷瘋狂。
有沒有
a)速度與迭代次數沒有線性關係的原因是什麼?
b)原因爲什麼它需要所以更長的時間做很多次例程
c)一種方法來加速這一個(我實際上想生成更大的矩陣),例如一個更好的循環或方式比如說給我一個同樣類型的1'000'000x1'000'000的矩陣?
嘗試預先分配'tau'。 – Junuxx
有一個名爲「加速MATLAB應用程序」的網絡研討會。有關於大矩陣的一些信息以及如何處理它們。 https://www.mathworks.com/company/events/webinars/wbnr49643.html?id=49643&p1=961666025&p2=961666043 – HebeleHododo