循环没啥优化的,只能尽量减少循环次数
for 循环的赋值
for(var i=0,max=arraylength;i<max;i++){//max 直接赋值,下次可以直接使用
}
2如果有取到值,则 break
if( expression ){//符合条件
break;
}
}
其他的暂时就没有了,只能说尽可能的减少循环次数,尽可能的减少内存开销;
建议利用并行计算,速度至少提高1/3,只需要for循环中各次迭代之间无数据传递关系。做法简单:只需要将你程序中的for更改为parfor即可,但前面需要加入如下指令:
matlabpool open
记得别忘记了程序最后添加:
matlabpool close
具体更改与不更改之间运算速度对比示例如下:
clc;
clear;
tic
for i=1:1000
c(:,i) = eig(rand(100));
end
display('Single CPU:')
toc
% use PCT
clear
matlabpool open local 2
tic
parfor i=1:1000
c(:,i) = eig(rand(100));
end
display('Double Core:')
toc
matlabpool close
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)