2012-07-29 29 views
9

假設我有一個集合一個如何在Octave中使用具有自定義功能的地圖?

A = [0:6:100] 

而且我有一個函數FIB(N)

function retval=fib(n) 
    g1=(1+5^.5)/2 
    g2=(1-5^.5)/2 
    retval=(1/5^.5)*(g1^n - g2^n) 
endfunction 

我打算能夠應用FIB(N)A,並將其存儲在集合B中,其中B [i,j](i,fib(i)),所以我可以繪製i vs fib(i)並在圖表上看到結果。

請告訴我如何使用地圖獲得此所需的集合B

回答

13

你可以這樣說:

map(@fib, A) 

@使得fib成一個函數句柄。需要注意的是map被棄用,你應該使用arrayfun代替:

arrayfun(@fib, A) 
+1

的'arrayfun'爲我做(升級到3.6.2之後),我沒得連安裝''雜包使用這個('map'需要它)。謝謝 – nemesisfixx 2012-07-30 06:38:31

+0

如果你有一個帶有幾個輸入參數的函數,可以使用:arrayfun(@(o)MyFunc(o,5,'up'),A)'。在這個例子中有兩個固定的參數,一個標量值「5」和一個字符串「up」。 – erik 2015-06-12 18:36:41

相關問題