# Is there a way to extracted histogram data into a matrix instead of graph?

8 views (last 30 days)
Soma on 22 Nov 2019
Edited: Soma on 22 Nov 2019
Hello,
Is there a way to extract histogram data into a matrix instead of a graph?
FileName_1 = ['Info_',num2str(N_Mer),'.mat'];
disp([FileName_1,' Running'])
all_rows=cell2mat(struct2cell(M));
R_sqr{N_Mer}=all_rows(1,:);
FileName=(['hist_R2',num2str(N_Mer)]);
hist_R2{N_Mer}=histogram(R_sqr{N_Mer});
legend
hold on
end

Bryan on 22 Nov 2019
Edited: Bryan on 22 Nov 2019
If you want to make a plot and also extract the values
% some data
foo = randn(10000,1);
% make a histogram named h
h = histogram(foo);
% get the values of the histogram
binedges = h.BinEdges;
binwidth = h.BinWidth;
bincounts = h.Values;
Alternatively, if you don't want a plot, but just want to extract histogram information
% some data
foo = randn(10000,1);
% extract histogram data
[bincounts, binedges] = histcounts(foo);
Steven Lord on 22 Nov 2019
The bin counts are fence rails/sections, the bin edges are the fence posts. See the Wikipedia page for "off by one error".
Ten bins would require eleven bin edges as shown in the picture in the "Fencepost error" section on that Wikipedia page.
Soma on 22 Nov 2019
Edited: Soma on 22 Nov 2019
Check this code with the below file please.
clc % To clear the screen
clear % To clear the Memory
t = tic;
time = [];
start = 8;
Num_Mon = 8; % Total number of steps
FileName_1 = ['Info_',num2str(Num_monomers),'.mat'];
disp([FileName_1,' Running'])
all_rows=cell2mat(struct2cell(M));
R_sqr=all_rows(1,:);
FileName=(['hist_R2',num2str(Num_monomers)]);
[bincounts, binedges] = histcounts(R_sqr);
bincentres = binedges(1:end-1)+diff(binedges)/2;
FileName = (bincounts);
FileName=histogram(R_sqr);
legend
hold on
end