detect consecutive duplicates in a structure

7 vues (au cours des 30 derniers jours)
Julien Bouchez
Julien Bouchez le 27 Mai 2014
Hi all
I am trying to detect consecutive duplicates in a structure like this
A(1).a=1
A(2).a=1
A(3).a=3
A(1).b=true
A(2).b=true
A(3).b=false
A has many .a .b ...
I did a for loop with this test :
ttest=A(ii)==A(ii-1)
But I get the error
Undefined function 'eq' for input arguments of type 'struct'.
So I described every .a .b ... individually
all([A(ii).a == A(ii-1).a,A(ii).b == A(ii-1).b,...])
which is a pain and lakes evolutivity
How would you do that ?
Regards
Julien

Réponses (2)

George Papazafeiropoulos
George Papazafeiropoulos le 27 Mai 2014
A(1).a=1
A(2).a=1
A(3).a=3
A(1).b=true
A(2).b=true
A(3).b=false
for ii=2:3
ttest(ii-1)=A(ii).a==A(ii-1).a
end
for ii=2:3
ttest(ii-1)=A(ii).b==A(ii-1).b
end

Andrei Bobrov
Andrei Bobrov le 27 Mai 2014
H = squeeze(struct2cell(A));
[~,~,c] = unique(reshape([H{:}],size(H)));
ttest = histc(c,unique(c));

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by