Re: Re; Reordering lists?!

• To: mathgroup at smc.vnet.net
• Subject: [mg4545] Re: Re; Reordering lists?!
• From: Harald Berndt <haraldb at nature.berkeley.edu>
• Date: Wed, 7 Aug 1996 04:17:51 -0400
• Organization: University of California Forest Products Lab
• Sender: owner-wri-mathgroup at wolfram.com

Andre and Alain wrote:

> <The code that replaces them>
>
> Do[If[gsub[[n]]==1,gsub[[n]]=4]||
> If[gsub[[n]]==2,gsub[[n]]=3]||
> If[gsub[[n]]==3,gsub[[n]]=2]||
> If[gsub[[n]]==4,gsub[[n]]=1],
> {n,1,Length[gsub]}]
>
> <It doesn't work properly?!>
>

No, of course that wouldn't work properly. When your code gets to the
first instance of 2, it replaces it with 3, which is then replaced by
2 by the next statement (so, no change at all). On the other hand, all
original 3's will end up as 2's. Ditto with the 4's and 1's: they'll
all be 1, by the time your logic statement is through. You'll need
"placeholders."

Besides, the Do[] and long logic statements are not very efficient use
of Mma. The Mma way of doing this would be with pattern matching and
replacement rules:

In[12]:=
chngdData =
((((((data//.1->x)//.4->1)//.3->y)//.2->3)//.y->2)//.x->4)
Out[12]=
{3, 4, 4, 4, 4, 3, 4, 3, 4, 4, 4, 3, 3, 4, 4, 2, 4, 4, 3, 4, 3, 4, 3,

4, 4, 4, 4, 3, 4, 3, 4, 2, 4, 3, 3, 4, 3, 4, 3, 2, 3, 1, 4, 4, 4, 4,

3, 4, 4, 4, 4, 3, 3, 3, 4, 3, 4, 3, 2, 3, 3, 3, 4, 3, 4, 3, 3, 3, 3,

3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4}
In[11]:=
Frequencies[chngdData]
Out[11]=
{{1, 1}, {4, 2}, {34, 3}, {42, 4}}
--
_______________________________________________________________
Harald Berndt                          University of California
Research Specialist                  Forest Products Laboratory
Phone: 510-215-4224                            FAX:510-215-4299
_______________________________________________________________

==== [MESSAGE SEPARATOR] ====

• Prev by Date: Re: Display Region Programmable ?
• Next by Date: Minors[]
• Previous by thread: Re: Re; Reordering lists?!
• Next by thread: Re: Re; Reordering lists?!