Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# unshiftdata

Inverse of `shiftdata`

## Syntax

```y = unshiftdata(x,perm,nshifts) ```

## Description

`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`.

## Examples

### Example 1

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 ```

### Example 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```