# digitrevorder

Permute input into digit-reversed order

## Syntax

``y = digitrevorder(x,r)``
``[y,i] = digitrevorder(x,r)``

## Description

example

````y = digitrevorder(x,r)` returns the input data `x` in digit-reversed order. The digit-reversal is computed using the number system base (radix base) `r`.```
````[y,i] = digitrevorder(x,r)` returns the digit-reversed input data and digit-reversed indices, such that ```y = x(i)```.```

## Examples

collapse all

Obtain the digit-reversed, radix base-3 ordered output of a vector containing 9 values. Obtain the same result by converting to base 3 and reversing the digits.

```x = (0:8)'; y = digitrevorder(x,3); c1 = dec2base(x,3); c2 = fliplr(c1); c3 = base2dec(c2,3); T = table(x,y,c1,c2,c3)```
```T=9×5 table x y c1 c2 c3 _ _ __ __ __ 0 0 00 00 0 1 3 01 10 3 2 6 02 20 6 3 1 10 01 1 4 4 11 11 4 5 7 12 21 7 6 2 20 02 2 7 5 21 12 5 8 8 22 22 8 ```

## Input Arguments

collapse all

Input data, specified as a vector or matrix. The length of `x` must be an integer power of `r`. If `x` is a matrix, the digit reversal occurs on the first dimension of `x` with size greater than 1.

Radix base, specified as an integer in the range [2, 36].

## Output Arguments

collapse all

Digit-reversed data, returned as a vector or matrix. `y` is the same size as `x`.

Digit-reversed indices, returned as a vector or matrix.

Note

MATLAB® matrices use 1-based indexing, so the first index of `y` will be 1, not 0.

collapse all

### Digit-Reversed Numbers

This table shows the numbers 0 through 15, the corresponding digits and the digit-reversed numbers using radix base-4. The corresponding radix base-2 bits and bit-reversed indices are also shown.

Linear Index

Base-4 Digits

Digit- Reversed

Digit- Reversed Index

Base-2 Bits

Base-2 Reversed (bitrevorder)

Bit- Reversed Index

0

00

00

0

0000

0000

0

1

01

10

4

0001

1000

8

2

02

20

8

0010

0100

4

3

03

30

12

0011

1100

12

4

10

01

1

0100

0010

2

5

11

11

5

0101

1010

10

6

12

21

9

0110

0110

6

7

13

31

13

0111

1110

14

8

20

02

2

1000

0001

1

9

21

12

6

1001

1001

9

10

22

22

10

1010

0101

5

11

23

32

14

1011

1101

13

12

30

03

3

1100

0011

3

13

31

13

7

1101

1011

11

14

32

23

11

1110

0111

7

15

33

33

15

1111

1111

15

## Version History

Introduced before R2006a