Root Mean Square Value of Histogram

21 次查看(过去 30 天)
How do I find the root mean square value of this histogram?
The data is Histo = [1;47;56;1298;9770;1114;0;0;2]

采纳的回答

Rik
Rik 2018-1-15
编辑:Rik 2018-1-15
If you don't have the original data, you can approximate it with the code below.
Histo = [1;47;56;1298;9770;1114;0;0;2]
centers=-4:4;
mean_of_squared_values=sum(Histo.*(centers(:).^2))/sum(Histo);
RMS=sqrt(mean_of_squared_values);
This works because the mean is the sum divided by the count.
  6 个评论
Amy Wong
Amy Wong 2018-1-17
编辑:Amy Wong 2018-1-17
I know that the RMS is to find the Standard Deviation of the histogram. Do I use the RMS of the original data values or the RMS the bin locations?
Image Analyst
Image Analyst 2018-1-17
I'm guessing you overlooked my answer below. We don't know which of the 3 RMS values you want. Only you know that. Maybe if you told us what you wanted to do with that information we could guide you.

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2018-1-15
Amy:
I just want to make sure you realize that the RMS of the original data values is not the same as the RMS of the bin locations (what Rik gave you), and neither is the same as the RMS of the bin heights. Yo DO know that don't you? So, which do you want? I give an illustration of all 3 in the demo code below, and you can see how they're different.
r = randn(20);
h = histogram(r)
counts = h.Values'
edges = h.BinEdges'
binCenters = (edges(1:end-1) + edges(2:end))/2
mean_of_squared_values = sum(counts.*(binCenters.^2))/sum(counts);
% Compute the RMS value of the bin center locations.
rmsCenters = sqrt(mean_of_squared_values)
% Compute the RMS value of the bin heights (counts).
rmsCounts = rms(counts)
% Compute the RMS of the actual data values.
rmsValues = rms(r(:))
% They're not the same!

类别

Help CenterFile Exchange 中查找有关 Histograms 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by