Remove Duplicate Rows in a Cell Array

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.

 Respuesta aceptada

Matt J
Matt J el 19 de Nov. de 2012
wd=withduplicates;
[~,idx]=unique( strcat(wd(:,1),wd(:,2),wd(:,3)) , 'rows');
withoutduplicates=wd(idx,:)

6 comentarios

Nicholas
Nicholas el 19 de Nov. de 2012
That worked! Thank you.
Nicholas
Nicholas el 19 de Nov. de 2012
I'm getting an orange warning in the Command Window every time I run the code you gave:
"Warning: The 'rows' input is not supported for cell array inputs."
How do I suppress this?
Thanks.
Matt J
Matt J el 19 de Nov. de 2012
Editada: Matt J el 19 de Nov. de 2012
Ah. Just omit the 'rows' input argument, then. It's not necessary.
Arne T
Arne T el 4 de Sept. de 2020
How do you handle following Problem:
withduplicates={
'exampleA' 'example'
'example' 'Aexample'}
Cause this rows are not the same, but your code would delete one of them.
Matt J
Matt J el 4 de Sept. de 2020
Nowadays, you would just use strings,
withoutduplicates=unique(string(withduplicates),'rows')
Michael Boateng
Michael Boateng el 16 de Feb. de 2021
This worked well. Thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 19 de Nov. de 2012

Comentada:

el 16 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by