How to count number from database

1 view (last 30 days)
Kaijia Chen
Kaijia Chen on 30 Nov 2021
Answered: dpb on 30 Nov 2021
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.

Accepted Answer

dpb
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
>>

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by