Find the values before an element repeated more than 4 times.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Serra Aksoy
am 27 Jan. 2020
Kommentiert: Adam Danz
am 27 Jan. 2020
Hi everyone,
I have an array like this: A=[ 1 2 3 4 5 0 0 6 7 0 9 0 0 0 10 11 12 0 0 0 0 0 0 0 8 9 10 11 0 0 0 0 0 ]
I would like to find the values which are the ones before 0 repeated more than 4 times.
So here the answer should be 12 and 11.
Any help is appreciated.
0 Kommentare
Akzeptierte Antwort
Adam Danz
am 27 Jan. 2020
Bearbeitet: Adam Danz
am 27 Jan. 2020
Input: A, numeric row vector
Output: valueBefore, a numeric vector of values prior to 4 or more consecutive 0s.
A=[ 1 2 3 4 5 0 0 6 7 0 9 0 0 0 10 11 12 0 0 0 0 0 0 0 8 9 10 11 0 0 0 0 0 ];
dA = diff([inf,A,inf]==0);
zeroCount = find(dA==-1) - find(dA==1);
zeroStart = find(dA==1);
valueBefore = A(zeroStart(zeroCount>=4)-1);
Note, if the A vector starts with 4+ zeros, there will be an error since there are no values prior to the first element.
2 Kommentare
Adam Danz
am 27 Jan. 2020
The only requirements for the input is that it's a row vector. If your vector is mx1, you just need to transpose it.
data = data.';
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Multidimensional Arrays 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!