用matlab求分段函数程序

functiony=g(x)if(x>2)y=x^2+2;elseif(0<x<=2)y=3*x;elseif(x<=0)y=x^3;end哪里错了啊。提示我x,没有赋值... function y=g(x)
if(x>2)
y=x^2+2;
elseif(0<x<=2)
y=3*x;
elseif(x<=0)
y=x^3;
end
哪里错了啊。提示我x,没有赋值
我要求g(6),g(2)
展开
 我来答
wg6689
2015-08-16 · TA获得超过278个赞
知道答主
回答量:71
采纳率:100%
帮助的人:29.9万
展开全部

出错的原因应该是 你的函数名字起的太简单了,可能与别的g.m函数冲突,引起调用错误,不过也可能是matlab抽风了,你重启试试。
我的解决办法是:把函数名字改为gg.m 然后放到当前工作目录中,
函数内容的代码是:

function y=gg(x)
if x>2  
    y=x^2+2;
elseif 0<x<=2       
    y=3*x;
elseif x<=0          
    y=x^3;
end

然后在命令行中输入
gg(6)

gg(2)
你看,运行正常!
结果如下:

你试试,如果有问题,欢迎继续讨论

更多追问追答
追问
??? Input argument "x" is undefined.

Error in ==> gg2 at 2
if x>2
这个是反馈的结果,还是错误
大哥,给看看怎么回事啊
追答
需要注意以下几点:
1 清空内存 用clear all ; clc;
2 把gg.m这个函数放到当前工作目录
3 gg.m 的内容为如下百分号之间的部分,不能有其他
%%%%%%%%%%%
function y=gg(x)
if x>2
y=x^2+2;
elseif 0<x<=2
y=3*x;
elseif x<=0
y=x^3;
end
%%%%%%%%%%%
4. 在命令行 输入
gg(6)
即可有效果, 我又试了一下,没有问题,你可以看到 我用的是matlab2010a
5 如果还有问题,留下你QQ ,我教你, 要耐心点,这个是个基本问题
大野瘦子
高粉答主

2019-10-18 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.1万
展开全部

这样:

clc,clear,close all

x = -5:.1:5;

y(x>=1) = 3.*x(x>=1).^2+1;

y(x>-1 && x<1) = 0;

y(x<=-1) = -x(x<=-1).^3+2;

figure,plot(x,y)

扩展资料:

注意事项

语法

if expression
statements
end

描述

MATLAB计算表达式,如果产生一个逻辑真或者非零结果,然后就执行一条或者多条MATLAB命令语句。

当有嵌套if时,每一个if必须和一个相应的end匹配。

当你在if语句里面嵌套使用else if或者else时,一般的格式如下:

if expression1

    statements1

elseif expression2

    statements2

else

    statements3

end

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式