Main Content

deintrlv

Restore ordering of symbols

Description

example

deintrlved = deintrlv(data,elements) restores the original ordering of the elements of data by acting as an inverse of intrlv.

Examples

collapse all

Use the intrlv function to rearrange the elements of a vector to a random permutation determined by the randperm function. Use the deintrlv function to restore the element order of the initial vector by reusing the same random permutation. This illustrates the inverse relationship between the intrlv and deintrlv functions.

Generate an input signal, data, and a permutation vector, elements.

data = 10:10:100
data = 1×10

    10    20    30    40    50    60    70    80    90   100

elements = randperm(10) % Permutation vector
elements = 1×10

     6     3     7     8     5     1     2     4     9    10

Permute the input signal according to the permutation vector by using the intrlv function and the restore the input signal order by using the deintrlv function.

a = intrlv(data,elements)
a = 1×10

    60    30    70    80    50    10    20    40    90   100

b = deintrlv(a,elements)
b = 1×10

    10    20    30    40    50    60    70    80    90   100

Use the intrlv function to rearrange the elements in the columns of a matrix to a random permutation vector determined by the randperm function. Use the deintrlv function to restore the element order of the initial matrix by reusing the same random permutation. This illustrates the inverse relationship between the intrlv and deintrlv functions.

Generate an input signal, data, and a permutation vector, elements.

data(:,1) = 10:10:100
data = 10×1

    10
    20
    30
    40
    50
    60
    70
    80
    90
   100

data(:,2) = 0.1:0.1:1
data = 10×2

   10.0000    0.1000
   20.0000    0.2000
   30.0000    0.3000
   40.0000    0.4000
   50.0000    0.5000
   60.0000    0.6000
   70.0000    0.7000
   80.0000    0.8000
   90.0000    0.9000
  100.0000    1.0000

elements = randperm(10) % Permutation vector
elements = 1×10

     6     3     7     8     5     1     2     4     9    10

Permute the input signal according to the permutation vector by using the intrlv function, and then restore the input signal order by using the deintrlv function.

a = intrlv(data,elements)
a = 10×2

   60.0000    0.6000
   30.0000    0.3000
   70.0000    0.7000
   80.0000    0.8000
   50.0000    0.5000
   10.0000    0.1000
   20.0000    0.2000
   40.0000    0.4000
   90.0000    0.9000
  100.0000    1.0000

b = deintrlv(a,elements)
b = 10×2

   10.0000    0.1000
   20.0000    0.2000
   30.0000    0.3000
   40.0000    0.4000
   50.0000    0.5000
   60.0000    0.6000
   70.0000    0.7000
   80.0000    0.8000
   90.0000    0.9000
  100.0000    1.0000

Input Arguments

collapse all

Input signal, specified as a vector or matrix. If data is a matrix with multiple rows and columns, the function processes the columns independently.

If data is a length-N vector or an N-row matrix, elements is a length-N vector that permutes the integers from 1 to N. To use this function as an inverse of the intrlv function, use the same elements input in both functions. In that case, the two functions are inverses in the sense that applying intrlv followed by deintrlv leaves data unchanged.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
Complex Number Support: Yes

Permutation vector, specified as an integer vector. The permutation vector specifies the mapping used to restore the input signal. The permutation vector length must equal the input signal length and contain for each integer k in the range [1 length(x,1)]. If data is a length-N vector or an N-row matrix, elements must be a length-N vector and contain each integer in the range [1 length(x,1)]. The sequence in elements is the sequence in which elements from data or its columns appear in deintrlved.

Data Types: double

Output Arguments

collapse all

Deinterleaved data, returned as a vector or matrix with the same dimension and datatype as the input signal, data. The output contains elements from the input signal mapped as deintrlved(elements(k),n) = data(k,n), for each integer k in the range [1 length(data,1)].

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced before R2006a

See Also