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为间隔
展开
 我来答
WM_THU
2014-04-02 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3941万
展开全部
我举个简单例子:
你的程序是这样:
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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式