Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

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

Search the Archive

Re: Re; Reordering lists?!

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4548] Re: Re; Reordering lists?!
  • From: Wolfram at 3rd.Eye.net
  • Date: Wed, 7 Aug 1996 04:17:54 -0400
  • Organization: 3rd Eye
  • Sender: owner-wri-mathgroup at wolfram.com

In article <4thaug$j6e at dragonfly.wolfram.com>, abindon at gpu.srv.ualberta.ca
(Andre and Alain) wrote:

>         Hey! I have a list of Numbers, 1 to 4, and wish to rescale them so
> that 1 replkaces 4 and 3 replaces 2 and 2 replaces 3 etc. I made a little
> code to do this on an element per element basis and it doesn't seem to do
> it! Could someone let me know what I'm doing wrong or whether it's a Mma
> problem? Thanks
> 
> <The original list>
> 
> gsub=Flatten[ColumnTake[gcsq,{4}]]
> {2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 3, 1, 1, 2, 1, 2, 1, 2, 1, 1,
> 1, 1, 2, 1, 2, 1, 3, 1, 
>   2, 2, 1, 2, 1, 2, 3, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2,
> 3, 2, 2, 2, 1, 2, 1, 
>   2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1}
> 
> <Frequencies of the list>
> 
> Frequencies[gsub]
> {{42, 1}, {34, 2}, {4, 3}, {1, 4}}
> 
> <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?!>
> 
> Frequencies[gsub]
> {{43, 1}, {38, 2}}
> 
> Of course the new list frequencies should be exactly opposite than the first
> one. Help please?!
> Thanks
> Andre Bindon
> Ablerta Hospital Edmonton

You might want to replace the OR function "||" by an ELSE functoin ","

 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]}]


You also can do the following:

 " Map[ 5-#&, gsub] " which is the same as " 5-#&/@gsub "

Wjr

-- 
}.
 `\
        I only exist in interaction

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


  • Prev by Date: Re: Replacement
  • Next by Date: Re: reverse an axis
  • Previous by thread: Re: Replacement
  • Next by thread: Re; Reordering lists?!