如何在 matlab 中创建、求解和绘制条件函数
How to create, solve and plot conditional function in matlab
例如,
我有一个
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)
。
那么有没有另一种写条件函数的方法呢?
抱歉,我的描述有点难以理解。如果您不明白我在问什么,请告诉我,我会尝试重新措辞。谢谢!
取决于你想用它做什么。如果由于某种原因你需要符号,这里是一种写你的 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])
例如, 我有一个
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)
。
那么有没有另一种写条件函数的方法呢?
抱歉,我的描述有点难以理解。如果您不明白我在问什么,请告诉我,我会尝试重新措辞。谢谢!
取决于你想用它做什么。如果由于某种原因你需要符号,这里是一种写你的 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])