Count number of unique values in column one, for each unique value in column 2
25 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Colby
am 29 Sep. 2015
Kommentiert: Andrei Bobrov
am 29 Sep. 2015
I've been faced with a problem that is giving me lots of trouble. I need to calculate the number of unique records in one column for each unique record in the second column. For example: If I have
Activities = {'walk', 'monday'; 'walk', 'monday'; 'eat', 'monday'; 'TV', 'tuesday'; 'run','wednesday'; 'eat', 'wednesday';...}
'call', 'Thursday';'work', 'Thursday'; 'call', 'Thursday';'work', 'Thursday';'sleep','Thursday'}
What I'd like in another column is the total number of unique activies for each unique day, formatted like "Result".
Result = [2;2;2;1;2;2;3;3;3;3;3]
1 Kommentar
WAT
am 29 Sep. 2015
This seems to be a repeat of http://www.mathworks.com/matlabcentral/answers/245839-count-the-number-of-occurrences-of-elements-in-second-column
Akzeptierte Antwort
Star Strider
am 29 Sep. 2015
Bearbeitet: Star Strider
am 29 Sep. 2015
Expanding on Andrei Bobrov’s Answer to a related Question:
[~,~,ic1] = unique(Activities(:,1), 'stable'); % Unique Activities
[~,~,ic2] = unique(Activities(:,2), 'stable'); % Unique Days
H = accumarray([ic1 ic2], 1); % Histogram
LH = sum(H > 0); % Sum Logical Array
SH = sum(H); % Sum Event Array
Result = [];
for k1 = 1:length(LH)
Result = [Result; repmat(LH(k1), SH(k1), 1)]; % Create ‘Result’ Vector
end
3 Kommentare
Star Strider
am 29 Sep. 2015
My pleasure!
To be a bit more descriptive, LH is the sum of different events per day, and SH is the number of total events per day.
Andrei Bobrov
am 29 Sep. 2015
[~,~,ic1] = unique(Activities(:,1), 'stable');
[~,~,ic2] = unique(Activities(:,2), 'stable');
H = accumarray([ic1 ic2], 1);
Result = repelem(sum(H > 0),sum(H));
or
H1 = sum(H > 0);
Result = H1(ic2);
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!