Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*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 2006

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

Search the Archive

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 @@@


  • Prev by Date: Re: To apply a function to a List
  • Next by Date: How to do integration symbolically with cauchy principal values
  • Previous by thread: For Loop problem
  • Next by thread: Re: For Loop problem