get_chunks¶
- get_chunks(data, min_len, max_len, tol)¶
GET_CHUNKS Extract consecutive runs of (near-)equal values from a vector
- Usage:
[run_lengths, run_inds, run_values, filtered_vector] = get_chunks(data) [run_lengths, run_inds, run_values, filtered_vector] = get_chunks(data, min_len, max_len) [run_lengths, run_inds, run_values, filtered_vector] = get_chunks(data, min_len, max_len, tol)
- Inputs:
data : 1xN numeric - input vector – required min_len : double - minimum run length (default: 1) max_len : double - maximum run length (default: inf) tol : double - a run extends while its full span (max-min) stays
within tol. Default 0 = strict equality (isequaln). Use a small positive tol to find near-constant runs when the signal has been resampled (the anti-alias filter leaves sub-unit ringing in flat/disconnected segments, so a genuinely flat run is no longer bit-identical - e.g. a 40-min disconnect survives as < 50 exactly-equal samples, below any 1-s min_len).
- Outputs:
run_lengths : 1xK double - length of each run run_inds : 1xK cell - index ranges for each run run_values : 1xK - value of each run filtered_vector : logical, same size as data - true at positions inside a run
Example
x = [2 2 5 5 5 6 6 6 6 4 7 2 2 2]; [lengths, runs] = get_chunks(x, 2, 4);
See also: consecutive_runs
∿∿∿ Prerau Laboratory MATLAB Codebase · sleepEEG.org ∿∿∿