看板 MATLAB 關於我們 聯絡資訊
請問版上各位高手! 假設今天我有一個函數f(x,y)=exp(x+y) 如果y是一個array,等於[1 2 3 4 5] 若分別代入y=1, y=2,...後的函數陣列為f=[f(x,1), f(x,2),...] 則f的數值積分要怎麼做? (也就是說我做y為不同值時,對x的數值積分) 我嘗試過這樣寫 y=[1 2 3 4 5] f=inline('exp(x+y(ii))') for ii=1:5 integral=quad(f(ii),xmin,xmax) end matlab出現了錯誤訊息 Not enough inputs to inline function. 我猜應該是f(x,y)必須輸入兩個值才行 但如果f輸入了兩個值,積分也不用積了 QQ 請問有什麼解決方法嗎 煩請各位大大回答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.82.135.248
profyang:沒用過inline這函數 不過你y(ii)是啥?那時還沒進for迴圈? 05/27 02:11
profyang:是我的話就直接定義成向量用trapz了... 05/27 02:12
ejialan:把f改成f=inline('exp(x+y)')或f=@(x,y) exp(x+y) 05/27 08:11
ejialan:然後積分改成integral=quad(@(x) f(x,y(ii)),xmin,xmax) 05/27 08:11