【问题标题】:MATLAB: Histcounts for every slice of a 3D matrixMATLAB:3D 矩阵的每个切片的历史计数
【发布时间】:2018-03-06 06:43:52
【问题描述】:

有没有办法矢量化以下代码?我想将 histcounts 函数应用于 3D 矩阵的每个切片。

mat = rand(100,1,5);
[~,~,numRuns] = size(mat);
for i = 1 : numRuns
    [n(:,:,i), edges(:,:,i)] = histcounts(mat(:,:,i));
end

【问题讨论】:

    标签: matlab multidimensional-array histogram


    【解决方案1】:

    如果您确实需要为每次运行创建单独的直方图,那么就这样吧。为什么你甚至想要矢量化它?它易于阅读,这很重要。 (你可以用cellfun对其进行矢量化,但在这种情况下它会很复杂,甚至不会更快。)如果你想提高计算速度,请使用parfor而不是for

    但也许您想要所有数据的直方图。然后就做

    [N,edges] = histcounts(mat);
    

    你得到了你的整体直方图。

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 2018-03-02
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多