查看: 89|回复: 0|关注: 0

[未答复] matlab 双循环时的优化问题

[复制链接]

新手

5 麦片

财富积分


050


9

主题

12

帖子

0

最佳答案
  • 关注者: 1
发表于 5 天前 | 显示全部楼层 |阅读模式
          k0=w/c0;              
          kx_up=500*k0;   kx_low=-500*k0;
          m=500;
          dkx=(kx_up-kx_low)/m;

          ky_up=500*k0;   ky_low=-500*k0;
          n=500;
          dky=(ky_up-ky_low)/n;

  for  ind=1:m+1
                kx(ind)=kx_low+(ind-1)*dkx;

                for iter=1:n+1
                    ky(iter)=ky_low+(iter-1)*dky;
                    k_para=sqrt(kx(ind)^2+ky(iter)^2);

                    if (k_para<(w-10)/c0)
                    [TC_prop(ind,iter)]=anisotropic_prop_dicar(w, d, kx(ind), ky(iter) ,sigmax, sigmay, theta);

                    elseif (k_para>(w+10)/c0)
                     [TC_evan(ind,iter)]=anisotropic_evan_dicar(w, d, kx(ind), ky(iter) ,sigmax, sigmay, theta);   
                    end                  
                end
                s1_prop(ind)=(TC_prop(ind,1)+4*sum(TC_prop(ind,2:2:n))+2*sum(TC_prop(ind,3:2:n-1))+TC_prop(ind,n+1))*dky/3;   
                s1_evan(ind)=(TC_evan(ind,1)+4*sum(TC_evan(ind,2:2:n))+2*sum(TC_evan(ind,3:2:n-1))+TC_evan(ind,n+1))*dky/3;
            end


程序如上,就是两次循环积分,但是有个判定条件。这样子去编程现在运算很慢,想了半天没想出什么好的加速办法,请问可以利用什么
能让这个程序快点算吗

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表