How can I get data from histogram ?
25 次查看(过去 30 天)
显示 更早的评论
Hi,
I want a CDF curve from my dataset. For that, at first I am plotting the dataset into histogram using histogram function. My dataset contain error of times of 1000 samples. Among 1000, we may have only distinct 200 values (others are repetition, so I want the numbe of occurrance of each values). Thats why I plot them to histogram to get the values and the propbabaility of the values.
Priviously I was using %[counts_5_10, centers_5_10] = hist(data);. This code was fine for me. How can I get this information from the new histogram function?
In the previous code I cannot fixed the binwidth.
Following is my old and new code.
I cannot extract the X-axes dataset (unique values among the 1000)
old code:
%[counts_5_10, centers_5_10] = hist(data);
probability=counts_L_7(1,:)/1000;
CDF=cumsum(probability/sum(probability));
New code:
h = histogram(data,'BinWidth',0.005);
N= h.Values% repetition of number of error values
Edges = h.BinEdges% this is the error values
probability=N/1000;
CDF=cumsum(probability./sum(probability));
0 个评论
采纳的回答
Ridwan Alam
2019-12-13
编辑:Ridwan Alam
2019-12-13
I believe you are looking for histcounts() instead of histogram().
[counts, centers] = histcounts(data,'BinWidth',0.005);
probability=counts/1000; % =counts/sum(counts);
CDF=cumsum(probability/sum(probability));
Btw, if you don't need probability, the CDF can be directly calculated as follows:
[CDF, centers] = histcounts(data,'BinWidth',0.005,'normalization','cdf');
9 个评论
Ridwan Alam
2019-12-14
编辑:Ridwan Alam
2019-12-15
Adding Adam's suggestion to the answer:
BinWidth = 0.005;
[CDF, edges] = histcounts(data,'BinWidth',BinWidth,'normalization','cdf'); % feel free to use the other solution using 'counts'
centers = edges(2:end) - BinWidth/2;
% with this 'centers' will have the same size as CDF.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Distribution Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!