# Re: Arrays: strange feature ?!

```In article <3910324B.CDDD96FB@pet.mpin-koeln.mpg.de>,
Alex Schuster <alex@pet.mpin-koeln.mpg.de> wrote:
> You can create the array like this:
>
> image = [ [image1], [image2], [image3] ]

Not quite.  In fact, the notation is remarkably flexible.

IDL>  i1 = bytarr(10,20)
IDL>  i2 = i1
IDL>  i3 = i1
IDL>  t = [i1,i2,i3]
IDL>  help,t
T               BYTE      = Array[30, 20]
IDL>  t = [[i1],[i2],[i3]]
IDL>  help,t
T               BYTE      = Array[10, 60]
IDL>  t = [[[i1]],[[i2]],[[i3]]]
IDL>  help,t
T               BYTE      = Array[10, 20, 3]
IDL>  t2 = [t,t]
IDL>  help,t2
T2              BYTE      = Array[20, 20, 3]
IDL>  t2 = [[t],[t]]
IDL>  help,t2
T2              BYTE      = Array[10, 40, 3]
IDL>  t2 = [[[t]],[[t]]]
IDL>  help,t2
T2              BYTE      = Array[10, 20, 6]
IDL>  t2 = [[[[t]]],[[[t]]]]

t2 = [[[[t]]],[[[t]]]]
^
% Only eight levels of variable concatenation are allowed.
IDL>

As you can see, there is a limit.  For three or fewer
dimensions, the rule seems to be that if the number of
outermost brackets in a row is 1, the arrays are
concatenated in X; if 2, they are concatenated in Y; and
if 3, they are concatenated in Z.  Consider this further
example:

IDL>  x = indgen(10)
IDL>  help, [[[x]],[[x]],[[x]]]
<Expression>    INT       = Array[10, 1, 3]

YMMV, but I like it, myself.

Bob Hill

--
Robert S. Hill
Raytheon ITSS       Code 681, NASA/GSFC, Greenbelt, MD 20771

Sent via Deja.com http://www.deja.com/