matlab分段函数画图,哪里有问题

symsx;x=-800:0.1:800;ifx<-500y=-sqrt(300^2-(x+500).^2)elseif(-500<=x&&x<=500)y=300*si... syms x ;
x=-800:0.1:800;
if x<-500
y=-sqrt(300^2-(x+500).^2)
else if (-500<=x && x<=500)
y=300*sin(pi/1000*x)
else
y=sqrt(300^2-(x-500)^2)
end
end
plot(x,y)
展开
 我来答
书宬
2012-10-06 · TA获得超过7851个赞
知道大有可为答主
回答量:2125
采纳率:75%
帮助的人:3332万
展开全部

%%%这样就可以了

clear;clc

x=-800:0.1:800;

for ii=1:length(x)

    if x(ii)<-500

        y(ii)=-sqrt(300^2-(x(ii)+500)^2);

    elseif (-500<=x(ii) & x(ii)<=500)

        y(ii)=300*sin(pi/1000*x(ii));

    else

        y(ii)=sqrt(300^2-(x(ii)-500)^2);

    end

end

plot(x,y)

 

**************************************

%%%或者

clear;clc

for x=-800:0.1:800

    if x<-500

        y=-sqrt(300^2-(x+500)^2);

    elseif (-500<=x && x<=500)

        y=300*sin(pi/1000*x);

    else

        y=sqrt(300^2-(x-500)^2);

    end

    plot(x,y)

    hold on

end

------------------------

靓为过G
2012-10-06 · TA获得超过769个赞
知道小有建树答主
回答量:477
采纳率:40%
帮助的人:380万
展开全部
把第一句去掉即可。
追问
还是和原来是一样的
??? Operands to the || and && operators must be convertible to logical scalar
values.
追答
这样修改:
x=-800:0.1:800;
y=-800:0.1:800;
y(x500)=sqrt(300^2-(x(x>500)-500).^2)
plot(x,y)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式