Re: For Loop problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg65617] Re: [mg65595] For Loop problem*From*: János <janos.lobb at yale.edu>*Date*: Tue, 11 Apr 2006 04:04:26 -0400 (EDT)*References*: <200604100631.CAA14834@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

On Apr 10, 2006, at 2:31 AM, Rob wrote: > I've got to manipulate some signed 12bit integer numbers from a > file and > apparently Mathematica only handles 8 and 16 bit signed numbers > (probably for a very good reason). So I bring them in as 16 bits (and > they're stored that way with a leading zero nibble) and then I have to > do the following to make sense of them. I really don't know why this > code works but it does. > > For[i = 1, i < Length[y], i++, If[y[[i]] > 2048, y[[i]] = > y[[i]] - 2048, y[[i]] = y[[i]] + 2048]]; > > So to my question: once again I had to resort to a For loop to pull > this > off and I know this is a no-no. But I'm so clueless about Mathematica > that I've never come up with a more sophisticated method after a > year or > so of thinking about it. Can someone help (as they usually can)? > > Thanks, Rob Here is a newbie approach using Map: In[2]:= lst = Table[Random[Integer, {1024, 3072}], {i, 1, 100}] In[3]:= f[x_] := Module[{r = x}, If[r > 2048, r -= 2048, r += 2048]; Return[r]]; In[4]:= (f[#1] & ) /@ lst János -------------------------------------------- f @@ # & /@ === f @@@

**References**:**For Loop problem***From:*Rob <rob@piovere.com>