Checking for multiple values that are the same in a vector
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
elspeth storey
am 10 Jul. 2019
Kommentiert: Andrei Bobrov
am 10 Jul. 2019
I have a vector of data values and would like to flag up if there are several identical values in a row.
If the data were A=[1,2,3,4,4,4,4,5,6,7,8] I would want it to flag up that there were 4 fours so that I could correct the values.
Is there a way of doing this other than a for loop with checking if A(2)==A(1)
Ideally it would only flag up an error if more than 10 were the same in a row (my real data is a lot larger than A).
Thanks
2 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 10 Jul. 2019
C = C(:);
d = [1;diff(C) ~= 0];
ii = cumsum(d);
counts = accumarray(ii,1);
k = find(counts >= 10);
lo = ismember(ii,k);
n = sum(lo);
C(lo) = randi([1 3],n,1);
2 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Database Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!