【问题标题】:Application of cellfun with multiple arguments多参数cellfun的应用
【发布时间】:2013-08-04 03:20:04
【问题描述】:

所以我现在正在编写的代码中有很多单元格操作,这有助于拥有两个参数的单元格函数(例如,在相同大小的单元格中连接数组)。然而,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)

帮助?

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 啊啊啊啊!然后我的其余应用程序应该可以顺利通过。非常感谢。
    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 2023-04-06
    • 2018-10-27
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多