我如何删除for循环?

1视图(30天)
马特奥
马特奥 2014年1月10日
评论道: 马特奥2014年1月13日
我想删除的循环代码我写了很久以前的事了。
函数(Rup) =更新器(A、E S)
[imax, jmax zmax] =大小(一个);
z = 1: zmax
Stmp = S (:,:, setdiff (1: zmax, z));
Atmp = (:,:, setdiff (1: zmax, z));
Etmp = E (::,:,:, setdiff (1: zmax, z));
我= 1:imax
j = 1: jmax
sumtmp =排列(和(和(Etmp (i, j,::,:)、3)、4), (1 2 3 4 5));
β= (Stmp (i, j) + Atmp (i, j:) + sumtmp);
n = - max(β);
EEtmp = E (i, j,:,:, z);
Rup (i, j, z) = S (i, j, z) + n +总和(EEtmp (:));
结束
结束
结束
R, S是[N M x P]矩阵。
我自己试过很多,但是我没有自信与技巧有助于消除循环。谁能帮我吗?
马特奥

接受的答案

肖恩·德Wolski
肖恩·德Wolski 2014年1月10日
只是preallocating Rup应该加快:
第一行:
Rup = 0(大小(A));

答案(1)

马特奥
马特奥 2014年1月10日
谢谢!多少会影响速度吗?
我也想学习新东西的for循环。
2的评论
马特奥
马特奥 2014年1月13日
我试着和执行时间降低了20%,谢谢!
无论如何我需要加速,你有其他的建议吗?

登录置评。

类别

找到更多的在循环和条件语句帮助中心文件交换

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!