Root Mean Square Value of Histogram
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Amy Wong
am 15 Jan. 2018
Kommentiert: Image Analyst
am 17 Jan. 2018
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]
0 Kommentare
Akzeptierte Antwort
Rik
am 15 Jan. 2018
Bearbeitet: Rik
am 15 Jan. 2018
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 Kommentare
Image Analyst
am 17 Jan. 2018
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.
Weitere Antworten (1)
Image Analyst
am 15 Jan. 2018
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!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Histograms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!