为了账号安全,请及时绑定邮箱和手机立即绑定

问下这个是正负无穷的函数,分段函数写的对吗?

问下这个是正负无穷的函数,分段函数写的对吗?

弑天下 2023-03-20 13:09:57
load ('e1.mat')syms y d=1.8;%input('请输入芯层厚度:');for i=0:Nq=i;n=teneff1{i+1,1}r1=sqrt(n^2-n1^2)*k0;r2=sqrt(n2^2-n^2)*k0;r3=sqrt(n^2-n3^2)*k0;a=-atan(r3/r2)+q*pi;if y>dEY1=cos(r2*d+a)*exp(-r1*(y-d))else if 0<y<dEY1=cos(r2*y+a);else y<0EY1=cos(a)*exp(r3*y)endendend这个程序是分段函数,运行时d有问题:无法从 sym 转换为 logical。出错 EYy (line 12)if y>d
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

是提示EYy么?但这段程序里没有EYy。
向从键盘输入的话,你的input前面加%做什么?这句直接写成d=input('请输入芯层厚度:\n');就行了,\n是为了换行,看着好看,无其他作用。
你要写分段函数的话,这样就写得太麻烦了,不像编程的人写的。三个判断应该写成
if y>d
...
else if y>0
...
else ...

查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信