Re: Using 'IF' function on 'Lists' in Mathematica 6.01
- To: mathgroup at smc.vnet.net
- Subject: [mg85049] Re: [mg85035] Using 'IF' function on 'Lists' in Mathematica 6.01
- From: Curtis Osterhoudt <cfo at lanl.gov>
- Date: Fri, 25 Jan 2008 05:06:10 -0500 (EST)
- Organization: LANL
- References: <200801240950.EAA15143@smc.vnet.net>
- Reply-to: cfo at lanl.gov
Hi, Lea,
As usual, there are many ways to do what you want. Your testIf function
works fine, but only if it's applied to each of the list's elements
one-by-one.
There are two ways to use testIf in the way you want:
1) Map it over your "data" list:
testIf/@data
or
Map[testIf, data]
2) Make testIf work on lists. Do this by making one of
the "Attributes" of testIf be "Listable":
AppendTo[Attributes[testIf], Listable]
After that's done, your testIf[data] should work the way you expect.
Good luck,
C.O.
On Thursday 24 January 2008 02:50:49 Lea Rebanks wrote:
> Dear All,
>
> I trying to Use the 'IF' function on a 'List' - 'data' below.
>
> I am trying to get the output as a 'List' of 1's & 0's
>
> In[7]:= data = {0.25, 0.292893219, 0.5,
> 0.707106781, 0.75, 0, 0.25,
> 0.292893219, 0.5, 0.707106781,
> 0.75, 0, 0.25,
> 0.2928932190000002, 0.5,
> 0.7071067809999998, 0.75, 0,
> 0.25, 0.2928932190000002, 0.5,
> 0.7071067809999998, 0.75, 0, 0.5,
> 0.5857864380000004, 1,
> 1.4142135619999996, 1.5, 0, 0.5,
> 0.5857864380000004, 1,
> 1.4142135619999996, 1.5, 0, 0.5,
> 0.5857864379999995, 1,
> 1.4142135620000005, 1.5, 0, 0.5,
> 0.5857864399999997, 1,
> 1.4142135600000003, 1.5, 0, 0.75,
> 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0}
>
>
> In[8]:= Clear[testIf]
> testIf[dataValue_] :=
> If[dataValue == 0, 0, 1]
>
> In[11]:= testIf[data[[11]]]
> Out[11]= 1
>
> In[13]:= testIf[data[[12]]]
> Out[13]= 0
>
> These two above values are working fine, however I want to produce a
> 'List'.
>
> In[12]:= testIf[data[[All]]]
> Out[12]= If[{0.25, 0.292893219, 0.5,
> 0.707106781, 0.75, 0, 0.25,
> 0.292893219, 0.5, 0.707106781,
> 0.75, 0, 0.25,
> 0.2928932190000002, 0.5,
> 0.7071067809999998, 0.75, 0,
> 0.25, 0.2928932190000002, 0.5,
> 0.7071067809999998, 0.75, 0,
> 0.5, 0.5857864380000004, 1,
> 1.4142135619999996, 1.5, 0, 0.5,
> 0.5857864380000004, 1,
> 1.4142135619999996, 1.5, 0, 0.5,
> 0.5857864379999995, 1,
> 1.4142135620000005, 1.5, 0, 0.5,
> 0.5857864399999997, 1,
> 1.4142135600000003, 1.5, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0,
> 0.75, 0.8786796599999995, 1.5,
> 2.1213203400000005, 2.25, 0} ==
> 0, 0, 1]
>
> Any help or advice gratefully received.
>
> Best Regards - Lea Rebanks...
--
==========================================================
Curtis Osterhoudt
cfo at remove_this.lanl.and_this.gov
PGP Key ID: 0x4DCA2A10
Please avoid sending me Word or PowerPoint attachments
See http://www.gnu.org/philosophy/no-word-attachments.html
==========================================================
- References:
- Using 'IF' function on 'Lists' in Mathematica 6.01
- From: "Lea Rebanks" <lrebanks@netvigator.com>
- Using 'IF' function on 'Lists' in Mathematica 6.01