我已经在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