第一、matlab能不用循环尽量不用循环
% % Nannan wang says that in matlab, cycling(循环) is time-consuming.
% % 能不用循环就不用循环
% % The easiest example to illustrate this idea
已知两个矩阵A,B,求所有元素对应相乘之和
思路一:用两重循环实现
思路二:点乘后的矩阵用C表示,sum(C(:)),思路二更好,没用循环
第二、预先分配存储空间
tic;
a=zeros(1000,10000);
for i=1:1000
a(i,:)=randperm(10000);
end
toc;
20130111在我的笔记本测试,需要时间1.115140 seconds;如果将a=zeros(1000,10000)注释,在我的笔记本测试,需要时间19.308252 seconds
参考文献:
见我的matlab教材P54