How to create a loop generating bins for the group of data in cell array
5 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I am a newby to MathLab and I need some help from the community.
I am trying to figure out how to loop a simple histcounts function.
I have a data set which I separtated into cell arrays with accumarrays
So now I have a cell array GC{121:1} which contain 121 separate matrixes (double values). Each of those matrixes has 2 columns and diferent numer of rows (2 x n matrix ).The first colunm is the number of slice indicating were data were extracted from.
I would like to split each matrix into 10 equal bins by the second column. So far I got to this:
But the loop I wrote dose not work
GC = accumarray(data(:,1),(1:size(data,1)),[],@(x){data(x,:)});
% Distribute x_point column into 6 equally spaced bins..
for i=1:121
[N,edges] = histcounts(GC{i,1},10);
end
采纳的回答
Sriram Tadavarty
2020-4-25
Hi Luliia,
The problem here is that the variables N and edges are overwritten with the latest value each time in the for loop.
You can try the following:
GC = accumarray(data(:,1),(1:size(data,1)),[],@(x){data(x,:)});
% Distribute x_point column into 6 equally spaced bins..
N = cell(1,121);
edges = cell(1,121);
for i=1:121
[N{i},edges{i}] = histcounts(GC{i,1},10);
end
% To access the first value in N, it can be done through N{1}
Hope this helps.
Regards,
Sriram
更多回答(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!