Count the number of occurrences of elements in second column

Hello, I'd like to know the number of unique entries, per unique entry in second column. For example, how could I return the number of unique activities per day.
Thanks so much for your time and help!
Activities = {'run', 'monday'; 'run', 'monday'; 'eat', 'monday'; 'TV', 'tuesday'; 'run','wednesday'; 'eat', 'wednesday'}
So in this example, I'd like the total number of unique actives, per day. So my desired result would look like "Result".
Result = [2;2;2;1;2;2]

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2015년 9월 29일
[~,~,a]=unique(Activities(:,2));
b = histc(a,1:a(end));
Result = b(a);

댓글 수: 2

Assuming I'm reading the code right, it won't distinguish between a repeated activity on the same day. So 2 entries of a "walk" on "Monday" would get counted as 2, rather than a 1.
Thanks a lot guys!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

WAT
WAT 2015년 9월 29일
Try something like
[uniqNames, ia, ic] = unique(Activities(:,2)); % find unique days
ia = [ia; 1+length(ic)];
Result = zeros(length(uniqNames)); % initialize output
for i=1:length(uniqNames) % loop through days
day = Activites( ia(i):ia(i+1), : ); % get all entries for that day
Result(i) = length(unique(day(:,1))); % count unique activities per day
end

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

2015년 9월 29일

편집:

2015년 9월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by