2013-08-04 17 views
2

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

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) 

帮助?

回答

2

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

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

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

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

取而代之,使用@mtimes意味着功能句柄“指向”MTIMES功能。

+0

aye aye!那么我的其他应用程序应该会很好。非常感谢。 –