The MAKE_ARRAY function enables you to dynamically create an array whose characteristics are not known until run time.
Result = MAKE_ARRAY ( [D1[, ..., D8]] [, /BYTE | , /COMPLEX | , /DCOMPLEX | , /DOUBLE | , /FLOAT | , /INTEGER | , /L64 | , /LONG | , /OBJ, | , /PTR | , /STRING | , /UINT | , /UL64 | , /ULONG] [, DIMENSION=vector] [, /INDEX] [, /NOZERO] [, SIZE=vector] [, START=value] [, TYPE=type_code] [, VALUE=value] )
Returns an array of the specified type, dimensions, and initialization.
Either an array or a series of scalar expressions specifying the dimensions of the result. If a single argument is specified, it can be either a scalar expression or an array of up to eight elements. If multiple arguments are specified, they must all be scalar expressions. Up to eight dimensions can be specified. If the dimension arguments are not integer values, IDL will convert them to integer values before creating the new array.
The Di arguments are optional if the dimensions of the result are specified using the DIMENSION keyword. Note that you should supply either the Di arguments or a value for the DIMENSION keyword, but not both.
Set this keyword to create a byte array.
Set this keyword to create a complex, single-precision, floating-point array.
Set this keyword to create a complex, double-precision, floating-point array.
An array of up to eight scalar elements, specifying the dimensions of the result. Note that you should supply either the Di arguments or a value for the DIMENSION keyword, but not both.
Set this keyword to create a double-precision, floating-point array.
Set this keyword to create a single-precision, floating-point array.
Set this keyword to create a 64-bit integer array.
Set this keyword to initialize the array with each element set to the value of its one-dimensional subscript. This keyword cannot be used with arrays of objects or pointers.
Set this keyword to create an integer array.
Set this keyword to create a longword integer array.
Set this keyword to prevent the initialization of the array. Normally, each element of the resulting array is set to zero.
Note: This keyword is ignored for arrays of strings, objects, or pointers. Arrays of these types will always be initialized to zero.
Set this keyword to create an object reference array.
Set this keyword to create a pointer array.
A size vector specifying the type and dimensions of the result. The format of a size vector is given in the description of the SIZE function.
Set the START keyword to an integer giving the value of the first element in the array when the array is initialized by index. The default is 0. Setting this keyword is equivalent to adding a constant offset to each element of the result. This keyword is only applied if INDEX is set.
Set this keyword to create a string array.
The type code to set the type of the result.
Type Code |
Type Name |
Data Type |
0 |
UNDEFINED |
Undefined |
1 |
BYTE |
Byte |
2 |
INT |
Integer |
3 |
LONG |
Longword integer |
4 |
FLOAT |
Floating point |
5 |
DOUBLE |
Double-precision floating |
6 |
COMPLEX |
Complex floating |
7 |
STRING |
String |
8 |
STRUCT |
Structure |
9 |
DCOMPLEX |
Double-precision complex |
10 |
POINTER |
Pointer |
11 |
OBJREF |
Object reference |
12 |
UINT |
Unsigned Integer |
13 |
ULONG |
Unsigned Longword Integer |
14 |
LONG64 |
64-bit Integer |
15 |
ULONG64 |
Unsigned 64-bit Integer |
Note: All type code values except for TYPE=8 (structures) are valid. To create an array of structures, use the REPLICATE function.
Set this keyword to create an unsigned integer array.
Set this keyword to create an unsigned 64-bit integer array.
Set this keyword to create an unsigned longword integer array.
The value to initialize each element of the resulting array. VALUE can be a scalar of any type including structure types. The result type is taken from VALUE unless one of the other keywords that specify a type is also set. In that case, VALUE is converted to the type specified by the other keyword prior to initializing the resulting array.
This routine is written to make use of IDL’s thread pool, which can increase execution speed on systems with multiple CPUs. The values stored in the !CPU system variable control whether IDL uses the thread pool for a given computation. In addition, you can use the thread pool keywords TPOOL_MAX_ELTS, TPOOL_MIN_ELTS, and TPOOL_NOTHREAD to override the defaults established by !CPU for a single invocation of this routine. See Thread Pool Keywords for details.
To create a 3-element by 4-element integer array with each element set to the value 5, enter:
M = MAKE_ARRAY(3, 4, /INTEGER, VALUE = 5)
4.0 |
Introduced |
8.2.1 | Added START keyword |
BYTARR , COMPLEXARR , DBLARR , DCOMPLEXARR , FLTARR , INTARR , LON64ARR , LONARR , REPLICATE , STRARR , UINTARR , ULON64ARR , ULONARR