有没有办法对下面的代码进行矢量化?我想将histcounts函数应用于3D矩阵的每个切片。
mat = rand(100,1,5);
[~,~,numRuns] = size(mat);
for i = 1 : numRuns
[n(:,:,i), edges(:,:,i)] = histcounts(mat(:,:,i));
end
答案 0 :(得分:0)
如果你真的需要每次运行一个单独的直方图,那么就这样吧。为什么你甚至想要矢量化它?它易于阅读,而且非常重要。 (您可以使用cellfun
对其进行矢量化,但在这种情况下,它会很复杂甚至更快。)如果您想提高计算速度,请使用parfor
代替for
。
但也许您想要所有数据的直方图。然后就做
[N,edges] = histcounts(mat);
你得到了你的整体直方图。