【问题标题】:histogram with normalization in each bin (matlab)在每个 bin 中进行归一化的直方图(matlab)
【发布时间】:2020-05-08 18:58:03
【问题描述】:

我有两个数组

A = rand(40,1)
B = rand(40,1)

我正在尝试获取A 的直方图,例如 10 个 bin,即

[count,center] = hist(A,10)

我的问题是,对于 A 的每个 bin,我需要除以 BA 具有相同索引的元素的总和,例如,如果 @ 的条目 1 和条目 5 987654327@ 进入A 直方图的第一个 bin,我需要通过数组B 的条目 1 和 5 的总和来标准化 bin 的中心。如果可能有一种有效的方法来确定A 中的索引与直方图对应的 bin 之间的映射,那么,可能会对此有所帮助吗?

谢谢

【问题讨论】:

  • 你能提供一个更详细的例子来解释你想要什么,即 A = [2 3 4 5 6 5 2 1 5 ]; B = [ ...]。就目前而言,我不明白你的目标是什么。
  • 我基本上是在尝试找到进入直方图每个 bin 的 A 的索引。然后,我可以使用这个映射来拉取 B 中对应于直方图中相应 bin 的条目。

标签: matlab histogram


【解决方案1】:

要找到属于哪个 bin 数据,我建议迁移到 histogram 函数,因为它会为您提供实际的边界。我下面的 MATLAB 代码将在 A 中添加第二行,第一行属于哪个 bin

A = randi(20,[1 15])

X = histogram(A,10)

% trim most right hand edge
leftEdge = X.BinEdges(1:end-1)

% initialize bin index
A(2,:) = 0


for k1 = 1:length(leftEdge)
    A(2,:) = A(2,:) + (A(1,:) >= leftEdge(k1));
end

disp(A)

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 2014-06-19
    • 2018-06-08
    • 1970-01-01
    • 2018-08-02
    • 2019-10-21
    相关资源
    最近更新 更多