Array Concatenation? [message #80749] |
Fri, 29 June 2012 04:02  |
rjp23
Messages: 97 Registered: June 2010
|
Member |
|
|
Hi
I have two 4 dimensional arrays like so:
Array[480, 241, 60, 124]
The 4th dimension (124 elements) is time. I want to concatenate the 1st timestep for the second array to the first array, something like this:
new=[array1, array2[*, *, *, 0]]
But I can't get the syntax correct to do the concatenation on the 4th dimension.
Any ideas what I'm doing wrong? I've tried various levels of []'s but can't get it working.
Cheers
|
|
|
Re: Array Concatenation? [message #80776 is a reply to message #80749] |
Wed, 11 July 2012 04:15  |
Heinz Stege
Messages: 189 Registered: January 2003
|
Senior Member |
|
|
On Wed, 11 Jul 2012 02:10:33 -0700 (PDT), Rob wrote:
> On Friday, June 29, 2012 7:16:33 PM UTC+1, Heinz Stege wrote:
>>
>> David Fanning has written an article about this:
>> http://www.idlcoyote.com/tips/array_concatenation.html
>>
>> HTH, Heinz
>
> Unfortunately I believe the caveat to that article applies here:
>
> "One caveat: a bug in IDL (as I see it) limits the practical concatenation dimension to 3, even though up to 8 dimensions are supported (i.e. only two pairs of extra brackets are allowed per entry... sorry no [[[[[[[a]]]]]]] permitted). You'll need higher magic if you use 8 dimensional datasets anyway. "
>
> I guess what I was really asking was what this "higher magic" was.
I don't know what Davids "higher magic" is. (And up to now I didn't
know about this limitation to IDLs array concatenation.) My first try
would be to merge all dimensions before the one to concatenate by the
reform function:
a=indgen(6,5,4,3,2)
b=indgen(6,5,4,1,2)
a=reform(a,6*5*4,3,2,/overwrite)
b=reform(b,6*5*4,1,2,/overwrite)
c=[[a],[b]]
c=reform(c,6,5,4,4,2,/overwrite)
This results in an array C having the dimensions [6,5,4,4,2].
Cheers, Heinz
|
|
|