将函数应用于矩阵中的每个元素--arrayfun

时间:2014-08-03 20:42:55

标签: matlab syntax

我尝试使用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.

1 个答案:

答案 0 :(得分:2)

正确的语法是

B = arrayfun(fun, A);

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

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