如何在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)
的'arrayfun'为我做(升级到3.6.2之后),我没得连安装''杂包使用这个('map'需要它)。谢谢 – nemesisfixx 2012-07-30 06:38:31
如果你有一个带有几个输入参数的函数,可以使用:arrayfun(@(o)MyFunc(o,5,'up'),A)'。在这个例子中有两个固定的参数,一个标量值“5”和一个字符串“up”。 – erik 2015-06-12 18:36:41