Re: Mapping to Create Nested Loops
- To: mathgroup at smc.vnet.net
- Subject: [mg119401] Re: Mapping to Create Nested Loops
- From: Gregory Lypny <gregory.lypny at videotron.ca>
- Date: Thu, 2 Jun 2011 07:15:02 -0400 (EDT)
Hi Heike,
This is good stuff. Thank you, Heike. Either one will do the trick!
Regards,
Gregory
On Wed, Jun 1, 2011, at 5:01 AM, Heike Gramberg wrote:
> 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