Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Need faster way to combine arrays

  • To: mathgroup at
  • Subject: [mg36075] Re: Need faster way to combine arrays
  • From: "Mariusz Jankowski" <mjkcc at>
  • Date: Thu, 15 Aug 2002 02:36:29 -0400 (EDT)
  • References: <ajd7sn$ekc$>
  • Sender: owner-wri-mathgroup at

Kevin, in version 4.2 you can get approx a factor of 2 improvement by using


This is currently the fastest method.

However, if you are using an earlier version of Mathematica, the code above
will unpack the data and therefore run slowly and eat up over 6 times more
memory. In that case compile your code and you will also get close to a
factor of 2 improvement. As an example, here is the code used in the DIP
package versions 1.0 and 1.1:

cplanarInt = Compile[{{x,_Integer,3}},
With[{d = Rest[Dimensions[x]},
Table[ x[[All, i, j]], {i, d[[1]]}, {j, d[[2]]}]]]

One final note, in your own work with large images, set $HistoryLength=1,
and check your code to see if it is unpacking your data using either
Developer`PackedArrayQ or ByteCount at intermediate steps in your

Regards, Mariusz

Mariusz Jankowski
University of Southern Maine
mjkcc at


"Kevin Gross" <kcgross at> wrote in message
news:ajd7sn$ekc$1 at
> Hello all,
> I've been using Mathematica for a while, but only recently for image
> processing.  Suppose I have the following 2D intensity arrays:
> r={{a1,b1},{c1,d1}};
> g={{a2,b2},{c2,d2}};
> b={{a3,b3},{c3,d3}};
> Now I'd like to combine them to produce a color image.
> color=Table[{r[[i,j]],g[[i,j]],b[[i,j]]},{i,2},{j,2}]
> This returns
> {{{a1, a2, a3}, {b1, b2, b3}}, {{c1, c2, c3}, {d1, d2, d3}}}
> which can be viewed as a color image with
> Graphics[Raster[color,ColorFunction->RGBColor]]//Show
> When the 2D arrays are large, combining them to form the color tensor as
> above is very time consuming.  Surely there is a more efficient, clever
> way to combine them than my use of Table, right?
> Many thanks,
> Kevin Gross
> PS Any comments pro/con from users of the Digital Image Processing
> package are also welcome.

  • Prev by Date: Re: ALL roots of non-polynomial equation
  • Next by Date: Re: Re: RE: Notebook for Primes
  • Previous by thread: Re: Need faster way to combine arrays
  • Next by thread: RE: Re: Need faster way to combine arrays