matlab这个分段函数图像怎么画?

题目是这样的:编写下列分段函数myfun,然后利用此函数画出其在[-10,10]区间上的图形:y=-1x<02x+30<=x<=515x>5这是我写的函数function... 题目是这样的:
编写下列分段函数myfun,然后利用此函数画出其在[-10,10]区间上的图形:
y=-1 x<0
2x+3 0<=x<=5
15 x>5
这是我写的函数
function y=myfun(x)
if x<0
y=-1
elseif x>5
y=15
else
y=x.*2+3
end
于是我输入plot(x,myfun(x))时出来的是一条直线,根本不是该函数的图像。本人初学者,希望各位高手们能告诉我正确的输入命令,小弟谢谢了~
展开
 我来答
百度网友6f18c64d5
2010-04-11 · TA获得超过2716个赞
知道小有建树答主
回答量:630
采纳率:100%
帮助的人:758万
展开全部
这是一个很典型的问题哈

问题出在这里:myfun的输入x你是当做单个数字来处理的,而实际你plot(x,myfun(x))里的x是一个数组,所以在myfun的if判断里,只取了第一个元素x(1)做判断,然后用判断的结果来计算所有的x(i)

你要写成这样,我写个简单点的,你自己照着改
x=-1:0.1:1;
y=x.*(x>0) - 2 * x .* (x<0)
plot(x,y)

另外,你可以在matlab里输入[1 2 3]>2,来看一下数组和单个数字比大小时,matlab是怎么处理的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greatdju
2010-04-11 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4187万
展开全部
方法1
x=linspace(-10,10);
y=-(x<0)+(0<=x&x<=5).*(x.^2+3)+15*(x>5);
plot(x,y)

方法2
f=maple('x->piecewise(x<0,-1,0<=x and x<=5,x^2+3,x>5,15)');
x =linspace(-10,10);
plot(x,mfun(f,x))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式