2017-11-11 201 views
1

我想用intintegral函數matlab來計算delta函數的積分,我不能用int函數因爲輸入,我給它不是表達式。同時,integral函數返回一個值,它是不是下面的圖片是什麼,我想產生它必須與增量函數的函數 enter image description here積分單位階躍函數或三角函數在matlab中

這是我的代碼,返回MA錯誤:

t=-5:0.01:5; 
ydelta=u(t+1)-u(t); 
h=int(u(t+1)-u(t)); 
plot(t,h) 

這是u功能:

function y=u(t) 
y=(t>=0); 
end 

,這是一個錯誤: 未定義的函數「INT」爲類型「雙」的輸入參數。 但這並不重要,因爲問題是int函數的輸入必須是表達式。

我該如何解決這個問題?

+0

問題有點令人困惑:單位階躍函數與「delta函數」不一樣,也不是方波脈衝u(t + 1)-u(t)。 (Delta函數並不是一個真正的函數,除了離散時間外,您可以用數值方式進行評估)。是不是有一個原因,你不是「使用for循環」手動「來集成它? – NickJH

回答

0

對於集成,您必須使用integral函數。 欲瞭解更多信息:https://it.mathworks.com/help/matlab/ref/integral.html

+0

'積分'函數返回一個值,但我必須繪製結果,所以我不能使用'積分'函數。 – mkafiyan

+0

也是輸入必須是一個函數,但我的輸入是一個向量。 – mkafiyan

+0

如果你想繪製結果(我想你是指整體面積),你可以使用'面積'圖形功能。對於第二個問題,您只需將曲線代碼轉換爲函數並將句柄傳遞給「整數」函數即可。 –