我需要編寫我自己的函數,它的格式爲f(x,y)=Integrate(g(x,y,z),z from 0 to inf)
。所以我使用的代碼是:matlab函數是一個整數函數
function y=f(x,y)
[email protected](z)exp(-z.^2)./(z.^x).*(z.^2+y.^2).^(x/2);% as a function of x,y and z
y=quadgk(g,0,inf)
,如果我把它像f(x0,y0)
一個值,它的工作原理,但如果我嘗試計算像f([1:10],y0)
的東西,那麼錯誤消息說,有什麼不對的時間和維度。原則上,我可以使用for循環,但隨後我的代碼變慢並且需要永久使用。我能從你們那裏得到什麼幫助嗎?或參考?
我試圖避免for循環,因爲在matlab中使用矩陣計算要比使用for循環快得多。我想知道是否有任何技巧可以利用此功能。
感謝提前任何幫助,
林恩
就你而言,我認爲你應該使用for循環。如果你有'x = 1:10',我想它不會超過正常函數的十倍。 – Oli
好吧,如果我爲循環做了10次這不是問題,但是我需要將這個函數傳遞給另一個函數來做一些優化,爲了做到這一點,函數f必須能夠接受向量輸入並生成向量輸出... – user1092696