Count the number of occurrences of elements in second column

4 vues (au cours des 30 derniers jours)
Colby
Colby le 29 Sep 2015
Modifié(e) : Colby le 29 Sep 2015
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]

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 29 Sep 2015
[~,~,a]=unique(Activities(:,2));
b = histc(a,1:a(end));
Result = b(a);
  2 commentaires
WAT
WAT le 29 Sep 2015
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.
Colby
Colby le 29 Sep 2015
Thanks a lot guys!

Connectez-vous pour commenter.

Plus de réponses (1)

WAT
WAT le 29 Sep 2015
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

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by