matlab中用if else语句表示分段函数

function y=g(x)if x<-pi|x>pi y=-1;else y=cos(x)end;
x=-2*pi:pi/16:2*pi; y=g(x);
plot(x,g(x));
结果为什么是

你的X是一个向量,然后y在赋值的时候,有时候是-1这是一个点,有时候是一个向量cos(x)。
感觉你这种方法不对。应该每点对应。
x=-2*pi:pi/16:2*pi;
L = length(x);
for i=1:L
if (abs(x(i))>pi)
y(i)=-1;
else

y(i) = cos(x(i));
end
end
plot(x,y)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-29
输出Y=cos(X)追问

为什么不是y=-1和y=cos(x)的分段函数呢?错在哪?正确的应该是什么?谢谢