Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #2876

Re: Mapping to Create Nested Loops

From Heike Gramberg <heike.gramberg@gmail.com>
Newsgroups comp.soft-sys.math.mathematica
Subject Re: Mapping to Create Nested Loops
Date 2011-06-01 10:54 +0000
Organization Steven M. Christensen and Associates, Inc and MathTensor, Inc.
Message-ID <is55pc$ctj$1@smc.vnet.net> (permalink)

Show all headers | View raw


Do you want to gather the entries of all the arrays in 3 large lists, or do you want to generate red, blue
and green lists for each array separately? In the first case you could try

Cases[{myArray1, myArray2, myArray3}, {__, __, #, __, __, __}, Infinity] & /@ {red, blue, green}

which searches all levels of {myArray1,...,myArray3} for the given pattern.  In the second case you could
do something like

Function[{lst}, Cases[{lst}, {__, __, #, __, __, __}] & /@ {red, blue, green}] /@ {myArray1, myArray2, myArray3}

Then %[[1]] would give you the red, blue, green lists for myArray1, etc.


Heike.


On 1 Jun 2011, at 09:32, Gregory Lypny wrote:

> Hello everyone,
>
> I'm trying to learn how to use pure functions and mapping to create what amounts to nested loops.
>
> Suppose I have a 50 x 6 array called myArray.  The third element of each row is the word red, blue, or green.  If I wanted to break down the array into three according to the value of the third element, I could do this:
>
> Cases[myArray, {__, __, #, __, __, __}] & /@ {red, blue, green}
>
> But what if I needed to do this for more than one array?  Suppose I had three 50 x 6 arrays as
>
> myListOfArrays = {myArray1, myArray2, myArray3} or perhaps the arrays might be imported from files.
>
>
> Regards,
>
> Gregory
>

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar | Unroll thread


Thread

Re: Mapping to Create Nested Loops Heike Gramberg <heike.gramberg@gmail.com> - 2011-06-01 10:54 +0000

csiph-web