erasing specifi rows from a cell matrix

Dear all,
I have
A={
'12/08' ' '
'01/09' ' '
'02/09' ' '
'03/09' ' '
'03/09' ' '
'04/09' ' '
'05/09' ' '
'06/09' ' '
'07/09' ' '
'08/09' ' '
'09/09' ' '
'10/09' ' '
'11/09' ' '
'12/09' ' '
'01/10' '33 '
'01/10' '55 '
'02/10' ' '
'03/10' ' '
'04/10' ' '
'05/10' ' '
'06/10' ' '
'07/10' ' '
'08/10' ' '
'09/10' ' '
'10/10' ' '
'11/10' ' '
'12/10' ' '
'01/11' '123 '
'01/11' ' 321'
'02/11' ' '
'03/11' ' '
'04/11' ' '
'05/11' ' '
'06/11' ' '
'07/11' ' '
'08/11' ' '
'09/11' ' '
'10/11' ' '
'11/11' ' '}
I want to erase the second duplicate so as to have
A={
'12/08' ' '
'01/09' ' '
'02/09' ' '
'03/09' ' '
'03/09' ' '
'04/09' ' '
'05/09' ' '
'06/09' ' '
'07/09' ' '
'08/09' ' '
'09/09' ' '
'10/09' ' '
'11/09' ' '
'12/09' ' '
'01/10' '33 '
'02/10' ' '
'03/10' ' '
'04/10' ' '
'05/10' ' '
'06/10' ' '
'07/10' ' '
'08/10' ' '
'09/10' ' '
'10/10' ' '
'11/10' ' '
'12/10' ' '
'01/11' '123 '
'02/11' ' '
'03/11' ' '
'04/11' ' '
'05/11' ' '
'06/11' ' '
'07/11' ' '
'08/11' ' '
'09/11' ' '
'10/11' ' '
'11/11' ' '}
thanks

1 Commento

what about
'03/09' ' '
'03/09' ' '
they are identical, will you remove one ?

Accedi per commentare.

 Risposta accettata

Più risposte (1)

Andrei Bobrov
Andrei Bobrov il 2 Ago 2012
Modificato: Andrei Bobrov il 2 Ago 2012
[~,b] = unique(A(:,1),'first')
Aout=A(sort(b),:)
or
[c,c,c] = unique(A(:,1));
Aout=A(~([false;diff(c)==0]&~cellfun(@isempty,regexp(A(:,2),'\d*'))),:);

3 Commenti

Hi andrei,
the code above erases the first and not the second duplicate
thanks
no, erases the second duplicate
no, does'nt erase the second, it erase the second after sorting, for example change a value 321 with 32.

Accedi per commentare.

Categorie

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by