作业帮 > 综合 > 作业

matlab的 input函数问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/30 13:52:34
matlab的 input函数问题
syms x lanmuda n2 n1 n3 H k0
H=input('请输入芯层厚度=');
lanmuda=('请输入波长=');
n1=('请输入上层折射率=');
n2=('请输入中间层折射率=');
n3=('请输入下层折射率=');
N=('请输入模数=');
k0=2*pi/lanmuda;
for i=0:N
q=i;
fun=sqrt(n2*n2-x^2)*k0*H-atan(sqrt(x^2-n1*n1)/sqrt(n2*n2-x^2))-atan(sqrt(x^2-n3*n3)/sqrt(n2*n2-x^2))-q*pi;
S=solve(fun,'x')
end
运行后出现请输入芯层厚度=,我输入1.8后,按enter键,出现错误,
错误使用 /
矩阵维度必须一致.
出错 m4 (line 9)
k0=2*pi/lanmuda;
数字输入完怎么结束输入,然后继续下一个输入.
把第一排删了.syms是声明符号变量,你这里的H什么的都是数值变量,在MATLAB里不需要声明,直接写出来用就行了.
再问: 我主要想问的是整个程序输完,按enter键,出现“请输入芯层厚度=”后,我输入1.8之后,按enter键,接下来没让我继续输入“请输入波长=”,而是直接显示出错。
再答: 就是把你程序的第一排删了啊。。。
再问: H=input('请输入芯层厚度= '); lanmuda=('请输入波长= '); n1=('请输入上层折射率= ');
后面的不变。但这样还是不行啊!但是网上找的程序clc syms r1 r2 i=input('传动比='); a=input('中心距='); [r1,r2]=solve(r1+r2-a,r2/r1-i) 就可以继续输入,实在不能理解。
再答: 不好意思。。。刚刚没仔细看你的程序。。。
第一排写syms x
如果还是不行的话你能把MATLAB的错误信息给我吗?
再问: 》 m4
请输入芯层厚度= 1.8
我在输入1.8后,按enter键,下面就出现
错误使用 /
矩阵维度必须一致。

出错 m4 (line 9)
k0=2*pi/lanmuda;
再答: 我错了。。。。。又没仔细看。。。
你后面几个变量没写input。。。
再问: 啊!!我看了好多遍都没看出来,谢谢啊!!!
再答: 主要是我把这段程序放到command window里跑的时候发现lanmuda什么的居然是字符串。。。