identifying successive dates in a cell vector

Dear all
I have the following sequence of dates
A={
'11/08'
'11/08'
'12/08'
'01/09'
'02/09'
'03/09'
'04/09'
'05/09'
'06/09'
'07/09'
'08/09'
'09/09'
'10/09'
'11/09'
'11/09'
'12/09'
'01/10'
'02/10'
}
As you can see some succesive dates contain the same month/year (for example the first 2 dates).
I would like to be able to identify the identical succesive dates
so as to construct an if statetement that will say
for ii=2:length(A)
if A(ii,1)==A(ii-1,1)
'do this'
end
end

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 1 de Ag. de 2012
Editada: Andrei Bobrov el 1 de Ag. de 2012
[a,b,c] = unique(A);
[jj,jj] = sort(b);
out = accumarray(c,(1:numel(c))',[],@(x){x});
out = [a(jj),out(jj)];
ADD
a = [false all(diff(char(A)-'0')==0,2)'];
a(strfind(a,[0 1])) = true;
or
[c,c,c] = unique(A);
k = [false;diff(c)==0];
k(find(k)-1)=true;

4 comentarios

Sabbas
Sabbas el 1 de Ag. de 2012
thanks andrei. But I need to leave the initial vector of dates unchanged so as to have for example
AA=(1, 1,0, 0,..)
Sabbas
Sabbas el 1 de Ag. de 2012
could you please help me?. I am so close in finding the correct answer
thanks
Andrei Bobrov
Andrei Bobrov el 1 de Ag. de 2012
see ADD
Sabbas
Sabbas el 1 de Ag. de 2012
Excellent!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by