How to count number from database
5 views (last 30 days)
Show older comments
I have a database which is a 1x11 struct.

I want to find out the total number present of each countries.
My code is
function [country, count] = movies_by_countries4(TV)
List = arrayfun(@(x) x.country, TV, 'UniformOutput', false);
[Group, country] = findgroups(List');
count = accumarray(Group,1);
end
And it produces result

However, I want to calculate the result for each individual countries.
So the expected result is:
country =
'CA'
'CN'
'US'
count =
1
5
6
what could I do to seperate the last struct and divide it into two individual country.
0 Comments
Accepted Answer
dpb
on 30 Nov 2021
I don't like struct stuff so didn't try to construct it since can't copy an image...but following should provide enough bread crumbs along the trail to be able to get there...
country=[repmat({'US'},5,1);repmat({'CN'},4,1);{'CA'};{'US''CN'}]; % generate the data
ix=contains(country,"'"); % identify the dual identity
c=arrayfun(@(c)split(c,"'"),country(ix),'UniformOutput',false); % and split them apart
country=[country(~ix);c{:}]; % add them to the unique
Above is updated vector; if need the original use different variable name for LHS.
Now get the summary counts...
>> summary(categorical(country))
CA 1
CN 5
US 6
>>
0 Comments
More Answers (0)
See Also
Categories
Find more on Database Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!