Difference between revisions of "CopyIndex"
Line 14: | Line 14: | ||
Suppose you want to create a matrix of distances between a set of origins and destinations, which are each the same set of cities: | Suppose you want to create a matrix of distances between a set of origins and destinations, which are each the same set of cities: | ||
− | + | :<code>Index Origins</code> | |
− | + | :<code>Definition := ['London', 'New York', 'Tokyo', 'Paris', 'Delhi']</code> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | If you were to define | + | :<code>Index Destinations</code> |
+ | :<code>Definition := CopyIndex(Origins)</code> | ||
+ | :<code>Variable Flight_times := Table(Origins, Destinations)</code> | ||
+ | |||
+ | If you were to define <code>Destinations</code> simply as <code>Origins</code>, without using [[CopyIndex]](), <code>Destinations</code> would be indexed by <code>Origins</code>, and the resulting table would have only one dimension index. By defining <code>Destinations</code> with [[CopyIndex]](), it becomes a separate index, so that the table has two dimensions. | ||
== See Also == | == See Also == |
Revision as of 22:37, 19 January 2016
CopyIndex(i)
Makes a copy of the values in «i» and returns these as a list which can be assigned to a new index variable, global or local. «i» must be a list or 1-D array. In the case of a 1-D array, the values in the array itself are returned, essentially removing the index from the array (converting the array to a list, or equivalently, to an array with an implicit dimension).
CopyIndex is most often used to make a copy of an existing index for the purpose of defining a new index with the same index values. For example, if you need to represent a square matrix, you will need two indexes with the same length -- defining the second using CopyIndex allows the second index to automatically adapt if the first index changes.
When defining a local index using Index..Do, a CopyIndex is implicitly performed, so an explicit call to CopyIndex is unnecessary.
Examples
Suppose you want to create a matrix of distances between a set of origins and destinations, which are each the same set of cities:
Index Origins
Definition := ['London', 'New York', 'Tokyo', 'Paris', 'Delhi']
Index Destinations
Definition := CopyIndex(Origins)
Variable Flight_times := Table(Origins, Destinations)
If you were to define Destinations
simply as Origins
, without using CopyIndex(), Destinations
would be indexed by Origins
, and the resulting table would have only one dimension index. By defining Destinations
with CopyIndex(), it becomes a separate index, so that the table has two dimensions.
Enable comment auto-refresher