如何将for循环中得​到的数值全部存储到数​组当中?。

4 views (last 30 days)
clc
clear
c=2.998e8;
A=[];
B=[];
syms t
omiga=2*pi.*c./5e-7;
omiga1=omiga;
omiga2=0.8*omiga;
gam1=0.1*omiga;
gam2=0.001*omiga;
a=1i.*omiga1+gam1;
b=1i.*omiga2+gam2;
for j=0:100
f=0.001j*omiga;
lamda1=(-a-b-sqrt((a-b)^2-4*f^2))*0.5;
lamda2=(-a-b+sqrt((a-b)^2-4*f^2))*0.5;
r1=(a+lamda2)*exp(lamda1.*t)./(lamda2-lamda1)-(a+lamda1)*exp(lamda2.*t)./(lamda2-lamda1);
r2=-(a+lamda1)*(a+lamda2)*exp(lamda1.*t)/(1i.*f.*(lamda2-lamda1))+(a+lamda1)*(a+lamda2)*exp(lamda2.*t)/(1i.*f.*(lamda2-lamda1));
N=r1.*conj(r1)+r2.*conj(r2);
B(j)=int(N*t,0,inf)./int(N,0,inf);                                
A(j)=f./omiga;
SM(:,1)=A(j);        
SM(:,2)=B(j);
save SM-plasmonic.txt -ascii SM;
end
plot(SM(:,1),SM(:,2))
xlabel('Time (fs)');
ylabel('Electric Field intensity (a.u.)');
问题:
我利用for循环想要把所有得到的积分值都存储在数组里面,但是不知道是不是积分的表达式有问题还是说给数组赋值的过程有问题,出现了报错!

Accepted Answer

亚博显示出款系统维护风控审核无法提现怎么办?【微81923899】
仅供参考
clc
clear
c=2.998e8;
A=[];
B=[];
syms t
omiga=2*pi.*c./5e-7;
omiga1=omiga;
omiga2=0.8*omiga;
gam1=0.1*omiga;
gam2=0.001*omiga;
a=1i.*omiga1+gam1;
b=1i.*omiga2+gam2;
for j=0:100
f=0.001j*omiga;
lamda1=(-a-b-sqrt((a-b)^2-4*f^2))*0.5;
lamda2=(-a-b+sqrt((a-b)^2-4*f^2))*0.5;
r1=(a+lamda2)*exp(lamda1.*t)./(lamda2-lamda1)-(a+lamda1)*exp(lamda2.*t)./(lamda2-lamda1);
r2=-(a+lamda1)*(a+lamda2)*exp(lamda1.*t)/(1i.*f.*(lamda2-lamda1))+(a+lamda1)*(a+lamda2)*exp(lamda2.*t)/(1i.*f.*(lamda2-lamda1));
N=r1.*conj(r1)+r2.*conj(r2);
B(j+1)=int(N*t,0,inf)./int(N,0,inf);                                
A(j+1)=f./omiga;
SM(j+1,1)=A(j+1);        
SM(j+1,2)=B(j+1);
save SM-plasmonic.txt -ascii SM;
end
plot(SM(:,1),SM(:,2))
xlabel('Time (fs)');
ylabel('Electric Field intensity (a.u.)');

More Answers (0)

Categories

Find more on 数学 in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!