例如,我有一个
f(x)=
9+4(x+3), if -4<=x<-1 (subf1)
7-9(x-0.4), if -1<=x<1 (subf2)如何在matlab中创建f(x)函数?我试过了
f=0
syms x
f=f+ subf1 with heaviside+ subf2 with heaviside但我不能给出一个v来解决f(v),也不能只从-4到1绘制f(x)。那么还有另一种写条件函数的方法吗?
对不起,我的描述有点难以理解。如果你不明白我的要求,请让我知道,我会尝试重新措辞。谢谢!
发布于 2016-10-17 04:08:21
取决于你想用它做什么。如果出于某种原因需要符号化,下面是编写符号函数的一种方法
syms x
f1 = (9 + 4 * (x + 3)) * heaviside(x + 4) * (1 - heaviside(x + 1));
f2 = (7 - 9 * (x - 0.4)) * heaviside(x + 1) * (1 - heaviside(x - 1));
f = symfun(f1 + f2, x);否则,您可以将将函数写入文件中作为:
function out = f(x)
out = (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1);也可以将其定义为匿名函数。
f = @(x) (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1);然后,您可以使用例如fplot绘制任何函数。
fplot(f, [-4, 1])https://stackoverflow.com/questions/40078072
复制相似问题