Find the longest sequence of consecutive non-zero values in a vector
Mostra commenti meno recenti
Hello everyone, I want to know how to find in a vector the longest sequence of consecutive non-zero values. example: I have x = [0 1 2 3 0 5 6 7 8 0 10]; I must have as output the block y = [5 6 7 8] Thank you in advance.
Risposta accettata
Più risposte (1)
Adam
il 7 Giu 2018
0 voti
or other similar run length functions should help, especially if you trivially binarise your input first.
1 Commento
Jan
il 7 Giu 2018
x = [0 1 2 3 0 5 6 7 8 0 10];
[b, n, xIdx] = RunLength(x ~= 0);
xIdx = xIdx(b);
[maxN, nIdx] = max(n(b));
r = x(xIdx(nIdx):xIdx(nIdx) + maxN - 1)
I think, Walter's solution is nicer.
Categorie
Scopri di più su Signal Processing Toolbox in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!