Find sequences of repeated (adjacent/consecutive) numeric values. Finds sequences of NaNs and Infs too.
(1) FINDSEQ(A) Find sequences of repeated numeric values in A along the first non-singleton dimension. A shuld be a numeric nD matrix.
(2) FINDSEQ(A,DIM) Look for sequences along the dimension specified by the positive integer scalar DIM.
OUT = findseq(...)
OUT is a "m by 4" numeric matrix where m is the number of sequences found.
Each sequence has 4 columns where:
- 1st col.: the value being repeated
- 2nd col.: the position of the first value of the sequence
- 3rd col.: the position of the last value of the sequence
- 4th col.: the length of the sequence
[VALUES, INPOS, FIPOS, LEN] = findseq(...)
Get OUT as separate outputs.
For details see help
For examples see the attached image.
Comments/suggestions/error reports are welcome.
p10v5 - Update strongly recommended due to major bug in output sorting in v4.
Oleg Komarov (2023). FINDSEQ (https://www.mathworks.com/matlabcentral/fileexchange/28113-findseq), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired: Clipping Indicator
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Fixed major bug in the sorting of Final position that relied on regularity conditions not always verified
Per Herbert Gsenger's suggestion fixed bug in matching initial and final positions; minor change to distribution of OUT if multiple outputs; added 3D example
Per Zachary Danziger's suggestion reorganized check structure to avoid bug when concatenating results
Cast double on logical instead of single when treating NaNs and Infs
Per Xiaohu's suggestion fixed bug in output dimensions when A is row vector
Reorganized code and fixed bug when concatenating results