Re: simple problem with Map?!?
- To: mathgroup at smc.vnet.net
- Subject: [mg49563] Re: [mg49480] simple problem with Map?!?
- From: DrBob <drbob at bigfoot.com>
- Date: Fri, 23 Jul 2004 06:00:28 -0400 (EDT)
- References: <200407211040.GAA07884@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
Study the results of this code:
d0 = {30, 60};
pppp = N[#/(Plus @@ #)] & /@ d0 // Trace
(snip)
The pure function N[#/(Plus @@ #)] & is applied to each element of d0 (30 and 60) separately.
Plus@@30 is 30, so we get N[30/30], which is N[1], and that's 1. That's what happens for every element of d0, so the result is {1.,1.}.
Probably what you want is just:
N[d0/Tr@d0]
{0.333333,0.666667}
Bobby
On Wed, 21 Jul 2004 06:40:32 -0400 (EDT), Relishguy <relishguy at pluggedin.org> wrote:
> I do not understand why the last evaluation ends up screwed:
>
> In[1]:= d0 = {30,60,180,60,30};
>
> In[2]:= tt = Plus @@ d0
> Out[2]= 360
>
> In[3]:= pp = N[d0 / tt]
> Out[3]= {0.0833333,0.166667,0.5,0.166667,0.0833333}
>
> In[4]:= ppp = N[d0 / (Plus @@ d0)]
> Out[4]= {0.0833333,0.166667,0.5,0.166667,0.0833333}
>
> In[5]:= pppp = N[# / (Plus @@ #)]& /@ d0
> Out[5]= {1.,1.,1.,1.,1.}
>
> Can anyone explain this simply? Do I need Hold[] or Evaluate[] somewhere?
>
> TIA.
>
> Regards..
>
>
>
--
DrBob at bigfoot.com
www.eclecticdreams.net
- References:
- simple problem with Map?!?
- From: relishguy@pluggedin.org (Relishguy)
- simple problem with Map?!?