Unpacking and tabulating contents of a cell array

39 views (last 30 days)
Hi, I have the following cell array:
My goal is to unpack the contents of each cell and tabulate the amount of times each number occurs. My first attempt below unpacks each cell in the command window and only the final 25th cell in the workspace under 'ans':
vsel{:}
My second attempt only returns the 1st of 25 cells in a new array in the workspace:
h = size(vsel,1);
vsel = vsel{1:h,1};
My third attempt was to use a comma separated list and employ concatenation but that only appears to work on arrays where each cell is of the same dimensions:
matrix = vertcat(vsel{:});
Once I can extract this information, I plan on tabulating the amount of times each number appears in each cell. Any help would be greatly appreciated!
-Ryan
  3 Comments
Walter Roberson
Walter Roberson on 9 Mar 2021
In the posted data, the entries are all sorted and no entry occurs more than once per cell. Are those characteristics that can be counted on?
Ryan Graham
Ryan Graham on 9 Mar 2021
Hi Stephen and Walter,
Thanks for your help. This is an adaptive - reweighted iterative sampling approach that will always return a 25x1 cell array. However, the contents of each cell in the array can range from 1:2 to 1:50. Using Walter's initial approach, I was able to create a histogram of how many times each number appeared in total for the 25x1 array using the following:
edges = unique(allnumbers)
counts = histc(allnumbers(:),edges)
bar(counts)

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Mar 2021
all_numbers = horzcat(vsel{:});
This is the same as
all_numbers = [vsel{:}];

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!