如何在Octave中使用具有自定义功能的地图?

问题描述:

假设我有一个集合一个如何在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

你可以这样说:

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