matlab不出图?

有没有大神帮我看看这是哪出了问题,程序没报错,但是出不了图l=7;n=10;x=-pi:0.0001:pi;T=0.9;Na=(2.*(1+exp(-n))).^(-1/... 有没有大神帮我看看这是哪出了问题,程序没报错,但是出不了图
l=7;
n=10;
x=-pi:0.0001:pi;
T=0.9;
Na=(2.*(1+exp(-n))).^(-1/2);
y=sqrt((1+0.5.*T.*n-exp(-n).*(0.5.*T.*n.*cos(4.*l.*x)+sin(2.*l.*x))-(abs(Na).^2).*T.*(1-exp(-n).*sin(2.*l.*x)).^2)/(4.*(abs(Na).^2).*T.*n.*exp(-2.*n).*(l.^2).*cos(2.*l.*x)));
plot(x,y)
xlabel('角度 \it\theta (rad)')
ylabel('灵敏度 \delta\theta')
展开
 我来答
lhmhz
高粉答主

2020-05-19 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17007

向TA提问 私信TA
展开全部

题主的代码执行后matlab不出图?其最根本的原因:就是没有正确使用好点运算符,即y的表达式书写错误(少了一个点除符号,其结果得到一个数值,而不是一组向量数值),应该为

y=sqrt((1+0.5*T*n-exp(-n)*(0.5*T*n.*cos(4*l*x)+sin(2*l*x))-(abs(Na)^2)*T*(1-exp(-n).*sin(2*l*x)).^2)./(4*(abs(Na)^2)*T*n*exp(-2*n)*(l.^2).*cos(2*l*x)));

修改后,即可正常出图。

奇芷荷中复
2020-05-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:891万
展开全部
程序里面y也是一个数组,y的值根据相应的x值会变,它这样做就是每次在y中添加一个元素,最后得到的y中的元素与x是一一对应的。如果用你的写法,y的值在循环中会不停地被覆盖掉,最后输出的y就是一个数,即x=10时的y值,所以这个方法是不对的,你可以换种写法。
x=[0:0.1:10];
y=zeros(1,101);
for
ii=1:101
if
x(ii)>=8
y(ii)=1;
elseif
x(ii)>=6
y(ii)=5-x(ii)/2;
elseif
x(ii)>=4
y(ii)=2;
elseif
x(ii)>=0
y=sqrt(x(ii));
end
end
plot(x,y)
这样应该也可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式