大家好,我是苏承栈。今天咱们来聊聊Matlab中那个强大的分段函数——piecewise。这玩意儿在我们处理一些复杂的不规则函数时,可是大有用处呢!
首先,来看看分段函数的语法:
pw = piecewise(cond1,val1,cond2,val2,...)
pw = piecewise(cond1,val1,cond2,val2,...,otherwiseVal)
这里,cond1、val1、cond2、val2...是按顺序排列的,意思是当cond1为True时,函数值为val1,当cond2为True时,函数值为val2,以此类推。如果没有条件为True,则返回NaN。加了个otherwiseVal,就是没有条件满足时,返回这个值。
举个例子,看看怎么定义一个简单的分段函数:
syms x
y = piecewise(x < 0,-1, x > 0,1)
这个函数就是当x小于0时,y等于-1,当x大于0时,y等于1。
当然,分段函数不仅可以用来定义表达式,还可以用来定义符号函数。比如:
syms y(x)
y(x) = piecewise(x < 0,-1,x > 0,1)
这样,y(x)就是一个符号函数了。
分段函数还能干啥?微分、积分、求极限,样样不在话下!
syms x
y = piecewise(x < -1,1/x,x >= -1,sin(x)/x);
diffy = diff(y,x) % 微分
inty = int(y,x) % 积分
limit(y,x,0) % 极限
limit(y,x,-1,'right') % 右极限
limit(y,x,-1,'left') % 左极限
最后,还想说说怎么修改和增添分段表达式。比如,我们有一个分段表达式:
pw = piecewise(x < 2,-1,x > 0,1)
我们可以这样修改它:
pw = subs(pw,x < 2,x < 0) % 将条件 x < 2 变更为 x < 0
pw = piecewise(x > 5,1/x,pw) % 增添条件 x > 5 时值为 1/x
好了,今天的分享就到这里。如果你对Matlab分段函数还有其他疑问,或者想了解更多编程技巧,记得来「极星编程网」(www.jxgpc.com)找我哦!
