Re: apparently I don't know how to use Map (or Apply or MapThread)
- To: mathgroup at smc.vnet.net
- Subject: [mg77366] Re: apparently I don't know how to use Map (or Apply or MapThread)
- From: dh <dh at metrohm.ch>
- Date: Thu, 7 Jun 2007 03:56:10 -0400 (EDT)
- References: <f4676i$1n3$1@smc.vnet.net>
Hi,
Map evaluates the function for every list element, in your case for
{0.098, 0.951, 0.954} and {0.509, 0.914, 0.487}. Then #[[i,i] does not
make sense. What you want is to evaluate the function on m and then it
works:
Table[#[[i,i]],{i,Length[#]}]&[m]
hope this helps, Daniel
dbsearch04 at yahoo.com wrote:
> I started with this:
>
> m = {{0.098, 0.951, 0.954}, {0.509, 0.914, 0.487}}
>
> I tried to do this
>
> Table[#[[i, i]], {i, Length[#]}] & /@ m
>
> It does not work, but this works
>
> Diag := Function[x, Table[x[[i, i]], {i, Length[x]}]]; Diag[m]
>
> !@#$%^&*(
>
> Can anyone tell me why? I also tried: Apply, MapThread,
> DiagonalMatrix, TakeMatrix, adding () around the pure function...
>
> I know that this is a simple problem. Would Evaluate help?
>
> TIA.
>
> Regards..
>
>