如何用matlab编写分段函数

如题所述

matlab对分段函数有非常简单的表示,对此例而言,语句如下:

x = -5:.1:5;

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

对于楼主的程序,错误之处在于:

elseif -1<x<1

应该为

elseif -1<x & x<1

也就是说 不等式串 必须表达为 单个的不等式的“且”关系。

没注意到 1楼 已经回答了。本回答没有重复1楼回答的意思。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-08-20
首先,建立自定义分段函数,即piecewise。m
function y=piecewise(x)
%piecewise function 分段函数
n=length(x);
Pomax=9;
for i=1:n
if x(i)>=0 & x(i)<=150
y(i)=0.79*Pomax*x(i)^0.048;
elseif x(i)>150 & x(i)<=270
y(i)=Pomax*exp(-0.021*(x(i)-150));
else
disp('x必须在0~270之间')
end
end
然后,在当前目录下,执行
>> piecewise(4)
ans =
7.5992本回答被提问者采纳