exponenta event banner

shiftdata

Сдвинуть данные для работы с указанным размером

Синтаксис

[x,perm,nshifts] = shiftdata(x,dim)

Описание

[x,perm,nshifts] = shiftdata(x,dim) сдвигает данные x для перестановки измерения dim к первому столбцу, использующему ту же перестановку, что и встроенный filter функция. Вектор perm возвращает используемый вектор перестановки.

Если dim отсутствует или пуст, затем первое несигллтонное измерение сдвигается в первый столбец, и количество смен возвращается в nshifts.

shiftdata предназначен для использования в паре с unshiftdata, который сдвигает данные обратно в их исходную форму. Эти функции полезны для создания функций, работающих в определенном измерении, например, filter, goertzel, sgolayfilt, и sosfilt.

Примеры

свернуть все

  1. Создайте магический квадрат 3-x-3:

    x = fi(magic(3))
    x = 
    
         8     1     6
         3     5     7
         4     9     2
    
              DataTypeMode: Fixed-point: binary point scaling
                Signedness: Signed
                WordLength: 16
            FractionLength: 11
  2. Сдвинуть матрицу x для работы по второму измерению:

    [x,perm,nshifts] = shiftdata(x,2)
    x = 
    
         8     3     4
         1     5     9
         6     7     2
    
              DataTypeMode: Fixed-point: binary point scaling
                Signedness: Signed
                WordLength: 16
            FractionLength: 11
    
    perm =
    
         2     1
    
    
    nshifts =
    
         []

    Вектор перестановки, permи количество смен, nshifts, возвращаются вместе со сдвинутой матрицей, x.

  3. Переместите матрицу обратно в ее исходную форму:

    y = unshiftdata(x,perm,nshifts)
    y = 
    
         8     1     6
         3     5     7
         4     9     2
    
              DataTypeMode: Fixed-point: binary point scaling
                Signedness: Signed
                WordLength: 16
            FractionLength: 11
  1. Определить x как вектор строки:

    x = 1:5
    x =
    
         1     2     3     4     5
  2. Определить dim как пустые, чтобы сдвинуть первый не-одиночный размер x к первому столбцу:

    [x,perm,nshifts] = shiftdata(x,[])
    x =
    
         1
         2
         3
         4
         5
    
    
    perm =
    
         []
    
    
    nshifts =
    
         1

    x возвращается в виде вектора столбца вместе с perm, вектор перестановки и nshifts, количество смен.

  3. Используя unshiftdata, восстановить x к исходной форме:

    y = unshiftdata(x,perm,nshifts)
    y =
    
         1     2     3     4     5

См. также

Представлен в R2008a