簡體   English   中英

如何在 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)並且我不能只從-41繪制f(x) 那么有沒有另一種寫條件函數的方法呢?

抱歉,我的描述有點難以理解。 如果您不明白我在問什么,請告訴我,我會嘗試改寫。 謝謝!

取決於你想用它做什么。 如果由於某種原因您需要符號,這是編寫符號函數的一種方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM