create a histogram from a cell array in matlab

六眼飞鱼酱① 提交于 2019-12-11 10:20:44

问题


I've done the nearest neighbour program in matlab for 547 points and I result with a cell array of size <547x1 cell> here are the data:

Cell array =

[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x3 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x3 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x8 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x7 double]
[1x4 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x5 double]
[1x5 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x7 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x8 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x4 double]
[1x8 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x4 double]
[1x9 double]
[1x3 double]
[1x6 double]
[1x4 double]
[1x4 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x9 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x9 double]
[1x4 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x3 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x5 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x7 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x6 double]
[1x4 double]
[1x5 double]
[1x6 double]
[1x4 double]
[1x6 double]
[1x3 double]
[1x8 double]
[1x4 double]
[1x8 double]
[1x6 double]
[1x5 double]
[1x5 double]
[1x4 double]
[1x8 double]
[1x3 double]

the data describes for each particle how many neighbours I have,what I wish to do is represent this data in histogram so that one can visualize easily how many time I have 6 neihbours how many times 4 ,5 ,7 ,8...sure it's hard for me to read between the lines and see how many 6 or X number do I have if anyone can help to suggest a way to represent and quantify these data in a histogram I'd be thankful

EDIT: Answer below for histogram generation with percentages.

I plotted the histogram using:

          [nelements,centers]=hist(cellfun(@numel,S));
          numNeighbors = cellfun(@numel,S);
          [nelements,centers]=hist(numNeighbors,unique(numNeighbors))
          pcts = 100 * nelements / sum(nelements)
          figure
          bar(centers,pcts)

displaying on the y axis the percentage of each xvalue occurance,now is it possible to show the percentages numbers on the histogram as I added in the image above so one can easily visualize the numbers ???


回答1:


Say your cell array is C, then try hist(cellfun(@numel,C)). For better display, maybe:

numNeighbors = cellfun(@numel,C);
hist(numNeighbors,unique(numNeighbors))


来源:https://stackoverflow.com/questions/19530636/create-a-histogram-from-a-cell-array-in-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!