Inverse of shiftdata
y = unshiftdata(x,perm,nshifts)
y = unshiftdata(x,perm,nshifts)
restores
the orientation of the data that was shifted with shiftdata
.
The permutation vector is given by perm
, and nshifts
is
the number of shifts that was returned from shiftdata
.
unshiftdata
is meant to be used in tandem
with shiftdata
. These functions are useful for
creating functions that work along a certain dimension, like filter
, goertzel
, sgolayfilt
,
and sosfilt
.
This example shifts x
, a 3-by-3
magic
square, permuting dimension 2
to the first column. unshiftdata
shifts x
back
to its original shape.
1. Create a 3-by-3
magic square:
x = fi(magic(3)) x = 8 1 6 3 5 7 4 9 2
2. Shift the matrix x
to work along the second
dimension:
[x,perm,nshifts] = shiftdata(x,2)
This command returns the permutation vector, perm
,
and the number of shifts, nshifts
, are returned
along with the shifted matrix, x
:
x = 8 3 4 1 5 9 6 7 2 perm = 2 1 nshifts = []
3. Shift the matrix back to its original shape:
y = unshiftdata(x,perm,nshifts) y = 8 1 6 3 5 7 4 9 2
This example shows how shiftdata
and unshiftdata
work
when you define dim
as empty.
1. Define x
as a row vector:
x = 1:5 x = 1 2 3 4 5
2. Define dim
as empty to shift the first
non-singleton dimension of x
to the first column:
[x,perm,nshifts] = shiftdata(x,[])
This command returns x
as a column vector,
along with perm
, the permutation vector, and nshifts
,
the number of shifts:
x = 1 2 3 4 5 perm = [] nshifts = 1
3. Using unshiftdata
, restore x
to
its original shape:
y = unshiftdata(x,perm,nshifts) y = 1 2 3 4 5