【问题标题】:How do I use map with custom function in Octave?如何在 Octave 中使用带有自定义功能的地图?
【发布时间】:2012-07-29 16:36:36
【问题描述】:

假设我有一个集合A

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 

我打算能够在 A 上应用 fib(n),并将其存储在集合 B 中,其中 B[i,j] (i,fib(i)),所以我可以绘制 i vs fib(i) 并查看结果图表。

请告诉我如何使用 map 来获得这个想要的集合B

【问题讨论】:

    标签: functional-programming octave


    【解决方案1】:

    你可以这样做:

    map(@fib, A)
    

    @ 使fib 成为函数句柄。请注意,map 已被弃用,您应该改用 arrayfun

    arrayfun(@fib, A)
    

    【讨论】:

    • arrayfun 为我完成了它(升级到 3.6.2 之后),我什至不必安装 miscellaneous 包来使用它(map 需要它)。谢谢
    • 如果您有一个带有多个输入参数的函数,请使用:arrayfun(@(o) MyFunc(o, 5, 'up'), A)。在此示例中,有两个固定参数,一个标量值5 和一个字符串'up'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 2018-07-16
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多