【问题标题】:applying function to each element in matrix --arrayfun将函数应用于矩阵中的每个元素--arrayfun
【发布时间】:2014-08-03 20:42:55
【问题描述】:

我正在尝试使用 arrayfun 将我编写的函数应用到矩阵中的每个元素,但我要么使用了错误的函数,要么使用了错误的语法。

我编写了一个具有 3 个输入、1 个输出的函数并将其保存到同一目录中的 m 文件中。我想调用该函数,其中 1 个输入是矩阵中的一个元素,其余 2 个输入被设置,并得到一个输出矩阵。

我的代码如下:

fun = @(x) my_function(x,input2,input3);
B = arrayfun(@(x) fun, A)

我收到以下错误

Error using arrayfun function_handle output type is not currently implemented.

【问题讨论】:

    标签: matlab syntax


    【解决方案1】:

    正确的语法是

    B = arrayfun(fun, A);
    

    因为fun 已经是您的anonymous function 的句柄。

    请注意,变量input1input2 必须在定义函数之前定义。这些变量的值得到"hard-wired" into the function definition。如果您稍后更改这些变量,则不会对函数产生影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 2022-12-12
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      相关资源
      最近更新 更多