MATLAB中什么设置一个一定范围的变量,不是向量
>>clearall>>clearn1=2.8;n2=1.4;d1=138;d2=276;d=d1+d2;forlamda=1000:1:2000;delta1=2*pi...
>> clear all
>> clear
n1=2.8;
n2=1.4;
d1=138;
d2=276;
d=d1+d2;
for lamda=1000:1:2000;
delta1=2*pi*n1*d1./lamda;
delta2=2*pi*n2*d2./lamda;
M1=[cos(delta1) i*sin(delta1)/n1;i*n1*sin(delta1) cos(delta1)];
M2=[cos(delta2) i*sin(delta2)/n2;i*n2*sin(delta2) cos(delta2)];
M=(M1*M2)^6;
end;
p1=(8.85*10^-12)^1/2;
pl=(8.85*10^-12)^1/2;
t=2*p1/(M(1,1)*p1+M(1,2)*pl)*p1+(M(2,1)+M(2,2)*pl);
t=2*p1/(M(1,1)*p1+M(1,2)*pl)*p1+(M(2,1)+M(2,2)*pl);
T=abs(t)^2;
plot(lamda,T);
为什么lamda的范围就是2000一个定值,应该怎么设置成1000~2000以1为间隔 展开
>> clear
n1=2.8;
n2=1.4;
d1=138;
d2=276;
d=d1+d2;
for lamda=1000:1:2000;
delta1=2*pi*n1*d1./lamda;
delta2=2*pi*n2*d2./lamda;
M1=[cos(delta1) i*sin(delta1)/n1;i*n1*sin(delta1) cos(delta1)];
M2=[cos(delta2) i*sin(delta2)/n2;i*n2*sin(delta2) cos(delta2)];
M=(M1*M2)^6;
end;
p1=(8.85*10^-12)^1/2;
pl=(8.85*10^-12)^1/2;
t=2*p1/(M(1,1)*p1+M(1,2)*pl)*p1+(M(2,1)+M(2,2)*pl);
t=2*p1/(M(1,1)*p1+M(1,2)*pl)*p1+(M(2,1)+M(2,2)*pl);
T=abs(t)^2;
plot(lamda,T);
为什么lamda的范围就是2000一个定值,应该怎么设置成1000~2000以1为间隔 展开
1个回答
展开全部
我举个简单例子:
你的程序是这样:
for k = 1:10
x = k;
end
最后返回的x当然是10,而且是标量,因为x在不断的被覆盖赋值。
但其实你要的是这样:
for k = 1:10
x(k) = k;
end
这样就可以得到一个向量x。
你的程序是这样:
for k = 1:10
x = k;
end
最后返回的x当然是10,而且是标量,因为x在不断的被覆盖赋值。
但其实你要的是这样:
for k = 1:10
x(k) = k;
end
这样就可以得到一个向量x。
追问
按照你说的把上述程序改成x(lamda)=lamda;但最后还是2000这个定值,能不能对于我这个程序具体的代码是怎么写的
追答
lamda = 1000:2000;
for k = 1:length(labmda)
x(k) = lambda(k);
end
plot(lambda, x);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询