# walkindex#

## Purpose#

Walks the index of an array forward or backward through a specified dimension.

## Format#

new_idx = walkindex(idx, orders, dim)#
Parameters:
• idx (Mx1 vector of indices into an array) – where $$M <= N$$.

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

• dim (scalar) – $$[1-to-M]$$, index into the vector of indices idx, specifying which dimension to walk through. A positive value will walk the index forward, while a negative value will walk backward.

Returns:

new_idx (Mx1 vector of indices) – the new index.

## Examples#

### Walk down the columns of a matrix#

orders = { 4, 3 };

// Starting index
idx = { 1, 1 };

// Get the next index
idx = walkindex(idx, orders, 1);


After the above code, idx will equal:

2
1


If we call it again, like this:

// Starting idx = { 2, 1 }
idx = walkindex(idx, orders, 1);


idx will be changed to:

3
1


We can see that walkindex() is incrementing the first index by one each time we call it.

### Walk down the rows of a matrix#

We will continue with our example from above, but this time we will change the final input, dim, equal to two to increment the second index.

// Starting idx = { 3, 1 }
idx = walkindex(idx, orders, 2);


idx will be changed to:

3
2


### Walk backwards through a 3-D array#

This example decrements the second value of the index vector idx.

orders = { 2, 4, 3 };

idx = { 2, 3, 3 };
idx = walkindex(idx, orders, -2);

      2
idx = 2
3


Since the absolute value of the final input, dim was equal to two, the second index was modified. Since the value was negative the index was decremented.

### Walk forwards through a 3-D array#

This example will continue with the final value of idx from the previous example.

// Starting idx = { 2, 2, 3 }
idx = walkindex(idx, orders, 3);


Since the final input, dim, is equal to positive three, the third element of idx is increased by one.

      2
idx = 2
4