具有多个参数的cellfun的应用

时间:2013-08-04 03:20:04

标签: matlab

所以我现在正在编写的代码中有很多单元格操作,它有助于极大地提供两个参数的单元格函数(例如,在相同大小的单元格中连接数组)。然而,MatLab对多输入cellfun调用的简单使用感到困惑,所以我想找出我做错了什么(因为我只是遵循MatLab函数参考)。例如,

B = {[1 2;3 4] , [5 6;7 8]}
cellfun(mtimes,B,B)

返回

??? Error using ==> mtimes
Not enough input arguments.

实际上,如果我输入

,它会返回相同的消息
cellfun(mtimes,B)

cellfun(mtimes,B,B,B,B)

帮助?

1 个答案:

答案 0 :(得分:2)

根据MATLAB CELLFUN documentation,CELLFUN的第一个参数必须是函数 handle ,而不仅仅是函数的“原始”名称。所以,像这样......

B = {[1 2;3 4] , [5 6;7 8]}
cellfun(@mtimes,B,B)

(注意第二行上mtimes前面的@符号)。

通过放入“原始”mtimes,MATLAB试图在没有参数的情况下评估函数MTIMES,并使用的结果作为CELLFUN的第一个参数。但是,正如错误消息所示,MTIMES作用于无参数是一个错误。

相反,使用@mtimes来表示“指向”MTIMES函数的函数 handle