![]() |
请各位高手指教如何矢量化如下循环语句?
1。
for i=1:length(y) if(y(i)<-eps1) y(i)=0; elseif(y(i)>eps1) y(i)=1; else y(i)=0.5+y(i)/(2.0*eps1)+1/(2*pi)*sin(pi*y(i)/eps1); end end 2。%求三重积分,积分区域是[0,1]*[0,1]*[0,1] %每重采用Simpson公式,步长分别为dx,dy,dz %函数在每个结点上的值已求出,放在N(1)*N(2)*N(3)的矩阵data中。 %我是这样求的,但速度很慢!!!! Q2=zeros(N(1),N(2)); %先对z求 for i=1:N(1) for j=1:N(2) Q2(i,j)=data(i,j,1)+data(i,j,N(3)); Q2(i,j)=Q2(i,j)+4*sum(data(i,j,2:2:N(3)))+2*sum(data(i,j,3:2:N(3)-1)); Q2(i,j)=Q2(i,j)*dz/3; end end Q1=zeros(g.N(1),1);%再对y求 for i=1:N(1) Q1(i)=Q2(i,1)+Q2(i,g.N(2)); Q1(i)=Q1(i)+4*sum(Q2(i,2:2:N(2)))+2*sum(Q2(i,3:2:N(2)-1)); Q1(i)=Q1(i)*dy/3; end Q=0; %最后对x求 Q=Q1(1)+Q1(g.N(1)); Q=Q+4*sum(Q1(2:2:N(1)))+2*sum(Q1(3:2:N(1)-1)); Q=Qi*dx/3; 请各位高手看看 |
不是每个循环都可以矩阵化的
|
怎么就没更多人看呢
|
所有时间均为北京时间。现在的时间是 19:17。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.