2017-10-17 103 views
0

我正在使用Matlab(這是個好主意)。如何通過標量乘以直方圖中的頻率

我需要將直方圖的頻率乘以標量值(對於每個bin)。 我已經在similar question中試過這種方法,但它是爲hist而不是直方圖函數定義的。 這是我原來的分佈需要乘以: orinial

這是我得到使用在類似的問題給出的方法: applied

此外,當我完成這一部分,我將有更多的直方圖我需要總結成一個直方圖。那麼我該怎麼做?他們可能有不同的範圍。

+0

什麼樣的數據,或你的代碼?您可以在直方圖之前對數據嘗試'repmat',然後您將獲得多個相同數據量。 – Adiel

+0

@Adiel目前我只有一個大小的矢量(150877x1),所以我不能在這裏發佈它。我繪製了該矢量的直方圖。現在我想用標量乘以它的頻率。 此外,我將有更多這些向量,我將需要乘以標量。最後,我需要在一個直方圖上總結它們。 – numb

+0

您應該嘗試創建一個最小示例,描述您的方法(向我們展示您的代碼)以及您面臨的問題:[問]。 – Irreducible

回答

2

該文檔clearly explains如何複製histhistogram的行爲。

例如:

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

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

生成以下直方圖:

yay yay2

+0

完美。這正是我期待的! – numb

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