Переключите данные, чтобы работать с заданным измерением
[x,perm,nshifts] = shiftdata(x,dim)
[x,perm,nshifts] = shiftdata(x,dim)
данные о сдвигах x
, чтобы переставить размерность dim
к первому столбцу с помощью той же перестановки в качестве встроенной функции filter
. Векторный perm
возвращает вектор перестановки, который используется.
Если dim
отсутствует или пустой, то первая неодноэлементная размерность переключена к первому столбцу, и количество рабочих смен возвращено в nshifts
.
shiftdata
предназначается, чтобы использоваться в тандеме с unshiftdata
, который переключает данные назад к его исходной форме. Эти функции полезны для создания функций, которые работают по определенному измерению, как filter
, goertzel
, sgolayfilt
и sosfilt
.
Этот пример переключает x
, 3-x-3 магический квадрат, переставляя размерность 2
к первому столбцу. unshiftdata
переключает x
назад к его исходной форме.
1. Создайте 3-x-3 магический квадрат:
x = fi(magic(3)) x = 8 1 6 3 5 7 4 9 2
2. Переключите матричный x
, чтобы работать вдоль второго измерения:
[x,perm,nshifts] = shiftdata(x,2)
Вектор перестановки, perm
, и количество рабочих смен, nshifts
, возвращен наряду с переключенной матрицей, x
:
x = 8 3 4 1 5 9 6 7 2 perm = 2 1 nshifts = []
3. Переключите матрицу назад к ее исходной форме:
y = unshiftdata(x,perm,nshifts) y = 8 1 6 3 5 7 4 9 2
Этот пример показывает, как shiftdata
и unshiftdata
работают, когда вы задаете dim
как пустой.
1. Задайте x
как вектор - строку:
x = 1:5 x = 1 2 3 4 5
2. Задайте dim
как пустой, чтобы переключить первую неодноэлементную размерность x
к первому столбцу:
[x,perm,nshifts] = shiftdata(x,[])
x
возвращен как вектор-столбец, наряду с perm
, вектором перестановки, и nshifts
, количеством рабочих смен:
x = 1 2 3 4 5 perm = [] nshifts = 1
3. Используя unshiftdata
, восстановление x
к его исходной форме:
y = unshiftdata(x,perm,nshifts) y = 1 2 3 4 5