singleindex#
Purpose#
Converts a vector of indices for an N-dimensional array to a scalar vector index.
Format#
- si = singleindex(i, o)#
- Parameters:
i (Nx1 vector) – indices into an N-dimensional array
o (Nx1 vector) – orders of an N-dimensional array
- Returns:
si (scalar) – index of corresponding element in 1-dimensional array or vector.
Examples#
// Set orders
orders = { 2, 3, 4 };
// Allocate array
a = arrayalloc(orders,0);
ai = { 2, 1, 3 };
// Set array
setarray a, ai, 49;
v = vecr(a);
vi = singleindex(ai, orders);
print "ai = " ai;
print "vi = " vi;
print "getarray(a, ai) = " getarray(a, ai);
print "v[vi] = " v[vi];
ai =
2.0000000
1.0000000
3.0000000
vi = 15.000000
getarray(a, ai) = 49.000000
v[vi] = 49.000000
This example allocates a 3-dimensional array a and sets the element corresponding to the index vector ai to 49. It then creates a vector, v, with the same data. The element in the array a that is indexed by ai corresponds to the element of the vector v that is indexed by vi.
Remarks#
This function and its opposite, arrayindex()
, allow you to convert between
an N-dimensional index and its corresponding location in a 1-dimensional object of the same size.
See also
Functions arrayindex()