2012-04-26 75 views
2

假設我們有一個函數定義爲:MATLAB函數和參數

函數(f,DF,X0)

其中f是一個函數,df是它的衍生物,和X0是一個初始點。我們如何在命令行中定義f?你使用內聯定義嗎?那麼df和x0呢?如果df是漸變?另外,如果x0是有序對,那麼如何在命令行中定義它?

回答

1

要將函數作爲變量傳遞,需要使用函數句柄。證明這一點的一種簡單方法是使用匿名函數的函數句柄。一個簡單的匿名函數可以被定義如下:

handle = @(arglist)anonymous_function 

因此,爲了使匿名函數,增加了2個數字,你可以這樣做以下:

f = @(a,b)a+b; 

您可以使用此像任何其他功能

>> f(1,2) 

ans = 

    3 

如果df是隻是一個簡單的數字值,它可以被定義如下:

df = 0.4 

要定義的一對值,你能做到這一點,像這樣:

X0=[1 2] 

最後,你可以把它放在一起用這個例子功能(把它放進一個名爲myfunc的文件)。 。 。

function out = myfunc(f,df,x0) 

out = df * f(x0(1), x0(end)); 

這是你想要的嗎?我被「x0是有序對」所迷惑。