【问题标题】:How to multiply a frequency in histogram by scalar如何将直方图中的频率乘以标量
【发布时间】:2018-03-29 02:11:11
【问题描述】:

我正在为此使用 Matlab(最好的想法)。

我需要将直方图的频率乘以标量值(对于每个 bin)。 我在similar question 中尝试过这种方法,但它是为 hist 而不是 histogram 函数定义的。 这是我的原始分布,需要成倍增加:

这是我使用类似问题中给出的方法得到的结果:

此外,当我完成这部分时,我将有更多的直方图,我需要将它们总结为一个直方图。那我该怎么做呢?它们可能有不同的范围。

【问题讨论】:

  • 你的数据是什么,或者你的代码是什么?您可以在直方图之前的数据上尝试repmat,然后您将获得多个数量的相同数据。
  • @Adiel 目前我只有一个大小为 (150877x1) 的向量,所以我不能在这里发布它。我绘制了该向量的直方图。现在我想将它的频率乘以标量。此外,我将拥有更多需要乘以标量的向量。最后,我需要将它们总结为一个直方图。
  • 您应该尝试创建一个最小示例,描述您的方法(向我们展示您的代码)以及您面临的问题:How to Ask

标签: matlab histogram


【解决方案1】:

文档clearly explains 如何复制histhistogram 的行为。

例如:

A = rand(100, 1);
h = histogram(A);

figure
h_new = histogram('BinCounts', h.Values*2, 'BinEdges', h.BinEdges);

生成以下直方图:

【讨论】:

  • 完美。这正是我想要的!
【解决方案2】:

您可以像这样修改 Bincounts:

X = normrnd(0,1,1000,1); % some data
h = histogram(X,3); % histogram with 3 bins
h.BinCounts = h.Values.*[3 5 1]; % scale each bin by factor 3, 5 and 1 respectively

【讨论】:

    猜你喜欢
    • 2015-08-27
    • 2014-05-09
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多