关于matlab分段函数。 如下。

n=1;

for x=-3:0.1:6;
if x<=0;
y(n)=x;
elseif (0<x)&(x<pi);
y(n)=sin(2*x);
else
y(n)=(x-pi)^2;
end
n=n+1;
end
x=-3:0.1:6;
plot(x,y);
为什么开始要定义n。且函数为y(n)=.......,直接用y=x为什么不行

这个函数可以这样写
x=-3:0.1:6;
y=x.*(x<=0)+sin(2*x).*(0<x&x<pi)+(x-pi).^2.*(x>=pi);plot(x,y);追问

.*是什么来的

追答

这个是点乘,表示向量每个对应元素相乘
(x<=0)表示只有x<=0 对应是1,其他对应0
x.*(x<=0)
则表示x<=0 对应是x,其他对应0

追问

明白

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-27
可以自己改一下试一下,这样最直接.
如果不加的时候 y是一个数,加上是一个向量,
第2个回答  2012-11-27
n是用来计数的追问

什么意思?y(n)和y有什么不同

相似回答