如何在matlab中创建,求解和绘制条件函数

时间:2016-10-17 03:27:34

标签: matlab function plot conditional

例如, 我有一个

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)而我无法仅f(x) -41。 那么还有另一种写条件函数的方法吗?

抱歉,我的描述有点难以理解。如果您不明白我的要求,请告诉我,我会尝试改写。谢谢!

1 个答案:

答案 0 :(得分:1)

取决于你想用它做什么。如果由于某种原因你需要符号,这是写symbolic function的一种方式:

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);

否则,您可以write your function in a file作为:

function out = f(x)
out = (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1);

或者您可以将其定义为anonymous function

f = @(x) (9 + 4 * (x + 3))*(x>=-4)*(x<-1) + (7 - 9 * (x - 0.4))*(x>=-1)*(x<1);

然后,您可以使用例如fplot

绘制任何函数
fplot(f, [-4, 1])