MATLAB:匿名函数可以不兼容或重新定义使用'

时间:2015-10-11 14:27:21

标签: matlab function histogram

我在执行以下操作时在第三行中收到此错误:

hist_paramd = @(x) hist(x, -1:0.1:1)
data_cell = num2cell(data)
histograms = cellfun(@hist_paramd,data_cell)

这是什么意思,我该如何解决?

编辑:改进了原来的问题,因为事实证明,在我的MATLAB版本中,rowfun甚至无法使用。

1 个答案:

答案 0 :(得分:1)

这个错误几乎肯定与@hist_paramdcellfun不需要hist_paramd的事实有关。这是因为hist_paramd已经是一个函数句柄(是一个匿名函数)。在为命名函数创建句柄时(例如,在m文件或内置函数中定义的函数),您只需要@

histograms = cellfun(hist_paramd,data_cell) %anonymous function
%histograms = cellfun(@sin,data_cell) %named function

如果你想象一下cellfun中hist_paramd的定义,这很容易理解:

histograms = cellfun(@(x) hist(x, -1:0.1:1),data_cell);
显然,你不需要另一个@