In order to allow a meaningful visualization in Multi-Dimensional Space (MDS), this function retrieves the most relevant subsequences using Minimal Description Length (MDL) framework.

  n_bits = 8,
  n_cand = 10,
  exclusion_zone = NULL,
  verbose = getOption("tsmp.verbose", 2)



a TSMP object of class MatrixProfile.


the data used to build the Matrix Profile, if not embedded.


an int or vector of int. Number of bits for MDL discretization. (Default is 8).


an int. number of candidate when picking the subsequence in each iteration. (Default is 10).


if a number will be used instead of embedded value. (Default is NULL).


an int. See details. (Default is 2).


Returns the input .mp object with a new name salient. It contains: indexes, a vector with the starting position of each subsequence, idx_bit_size, a vector with the associated bitsize for each iteration and bits the value used as input on n_bits.


verbose changes how much information is printed by this function; 0 means nothing, 1 means text, 2 adds the progress bar, 3 adds the finish sound.


  • Yeh CCM, Van Herle H, Keogh E. Matrix profile III: The matrix profile allows visualization of salient subsequences in massive time series. Proc - IEEE Int Conf Data Mining, ICDM. 2017;579-88.

  • Hu B, Rakthanmanon T, Hao Y, Evans S, Lonardi S, Keogh E. Discovering the Intrinsic Cardinality and Dimensionality of Time Series Using MDL. In: 2011 IEEE 11th International Conference on Data Mining. IEEE; 2011. p. 1086-91.



# toy example
data <- mp_toy_data$data[, 1]
mp <- tsmp(data, window_size = 30, verbose = 0)
mps <- salient_subsequences(mp, data, verbose = 0)
#> Error in salient_subsequences(mp, data, verbose = 0): First argument must be an object of class `MatrixProfile`.
# \donttest{
# full example
data <- mp_meat_data$sub$data
w <- mp_meat_data$sub$sub_len
mp <- tsmp(data, window_size = w, verbose = 2, n_workers = 6)
mps <- salient_subsequences(mp, data, n_bits = c(4, 6, 8), verbose = 2)
#> Error in salient_subsequences(mp, data, n_bits = c(4, 6, 8), verbose = 2): First argument must be an object of class `MatrixProfile`.
# }