Remove Duplicate Rows in a Cell Array

17 visualizzazioni (ultimi 30 giorni)
Nicholas
Nicholas il 19 Nov 2012
Commentato: Michael Boateng il 16 Feb 2021
Hello,
I'm trying to remove duplicate rows in a cell array. I'm familiar with the 'unique' function for use on vectors (or individual columns of a cell array) but I'm stumped on how to work on the whole array at once.
What I'm looking for is the same as the Excel button "Remove Duplicates" which does this:
withduplicates={
'Bear' 'Chicago' '1 yr'
'Bear' 'Chicago' '1 yr'
'Bear' 'Chicago' '1 yr'
'Bear' 'Miami' '2 yr'
'Bear' 'Miami' '2 yr'
'Lion' 'Denver' '1 yr'
'Lion' 'Miami' '2 yr'
'Lion' 'Miami' '2 yr'
'Lion' 'Miami' '2 yr'
'Tiger' 'Denver' '1 yr'
'Tiger' 'Chicago' '1 yr'
'Tiger' 'Chicago' '1 yr'}
withoutduplicates={
'Bear' 'Chicago' '1 yr'
'Bear' 'Miami' '2 yr'
'Lion' 'Denver' '1 yr'
'Lion' 'Miami' '2 yr'
'Tiger' 'Denver' '1 yr'
'Tiger' 'Chicago' '1 yr'}
Any help is greatly appreciated.

Risposta accettata

Matt J
Matt J il 19 Nov 2012
wd=withduplicates;
[~,idx]=unique( strcat(wd(:,1),wd(:,2),wd(:,3)) , 'rows');
withoutduplicates=wd(idx,:)
  6 Commenti
Matt J
Matt J il 4 Set 2020
Nowadays, you would just use strings,
withoutduplicates=unique(string(withduplicates),'rows')
Michael Boateng
Michael Boateng il 16 Feb 2021
This worked well. Thank you.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by