第一、 matlab能不用循环尽量不用循环
% % Nannan wang says that in matlab, cycling(循环) is time-consuming.
% % 能不用循环就不用循环
% % The easiest example to illustrate this idea

已知两个矩阵AB,求所有元素对应相乘之和

思路一:用两重循环实现

思路二:点乘后的矩阵用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