我在执行以下操作时在第三行中收到此错误:
hist_paramd = @(x) hist(x, -1:0.1:1)
data_cell = num2cell(data)
histograms = cellfun(@hist_paramd,data_cell)
这是什么意思,我该如何解决?
编辑:改进了原来的问题,因为事实证明,在我的MATLAB版本中,rowfun甚至无法使用。
答案 0 :(得分:1)
这个错误几乎肯定与@hist_paramd
中cellfun
不需要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);
显然,你不需要另一个@
。