# arrayindex#

## Purpose#

Converts a scalar vector index to a vector of indices for an N-dimensional array.

## Format#

i = arrayindex(scalar_idx, orders)#
Parameters:
• scalar_idx (scalar) – index into vector or 1-dimensional array.

• orders (Nx1 vector) – orders of an N-dimensional array

Returns:

i (Nx1 vector of indices) – index of corresponding element in N-dimensional array.

## Examples#

```// Set the rng seed for repeatable random numbers
rndseed 982348;

orders = { 2, 3, 4, 5 };

/*
** Create 120x1 vector of uniform random numbers
** (2*3*4*5 = 120)
*/
v = rndu(prodc(orders), 1);

/*
** Reshape the 120x1 random vector into a
** 2x3x4x5 dimensional array
*/
a = areshape(v, orders);

vi = 50;
ai = arrayindex(vi, orders);

print "vi = " vi;
print "ai = " ai;
print "v[vi] = " v[vi];
print "getarray(a, ai) = "; getarray(a, ai);
```

The code above, produces the following output:

```vi =   50.000
ai =
1.000
3.000
2.000
5.000
v[vi] =    0.047
getarray(a, ai) =    0.047
```

This example allocates a vector of random numbers and creates a 4-dimensional array using the same data. The 50th element of the vector v corresponds to the element of array a that is indexed with ai.

## Remarks#

This function and its opposite, `singleindex()`, allow you to easily convert between an N-dimensional index and its corresponding location in a 1-dimensional object of the same size.

Functions `singleindex()`