在数据量很大的情况下,用矩阵运算可代替FOR循环,使运算速度大大加快。
我想问的是,如果一个FOR循环中,有很多if、continue等条件语句或循环语句,还能变成矩阵运算吗?
我有个程序需要循环几百万次,速度非常慢,请大家赐教!谢谢。
例如下面的程序,
for i=1:cyc-1
if (Smax(i)>=Smaxol(i));
Smaxol(i+1)=Smax(i);
ol=i;
else
Smaxol(i+1)=Smax(ol);
end
Yre=sqrt((1.0/cos(PI*re/w)));
alpha0=KIc/(sigmau*sqrt(PI*re)*(1.0+Yre/sqrt(2.0)));
if alpha0>sqrt(2.0);
sigmav=sigmau*PI/2.0/acos(1.0/(alpha0^2.0-1.0));
else
error('PLEASE TO CHECK THE VALUE OF ALHPA0!');
break;
end
R(i)=Smin(i)/Smax(i);
Y=sqrt((1.0/cos(PI*a(i)/w)));
Yol=sqrt((1.0/cos(PI*a(ol)/w)));
Kmax(i)=sqrt(PI*re*(1.0/cos(PI*Smax(i)/2.0/sigmav)+1.0))*(1.0+Y*sqrt(a(i)/2.0/re))*Smax(i