Re: normalize a table
- To: mathgroup at smc.vnet.net
- Subject: [mg72813] Re: normalize a table
- From: "gkruger" <gkruger at nwz.uni-muenster.de>
- Date: Sat, 20 Jan 2007 04:08:55 -0500 (EST)
- References: <eopmgk$rr4$1@smc.vnet.net>
Hi Ruth this should work fine: With[{max = Max[Transpose[firsttable][[1]]]}, Transpose[{Map[#/max &, Transpose[firsttable][[1]]], Transpose[firsttable][[2]]}]] Or you can put it in a function: NormTable[ftab_] := With[{max = Max[Transpose[ftab][[1]]]}, Transpose[{Map[#/max &, Transpose[ftab][[1]]], Transpose[ftab][[2]]}]] Greetings Guido With transpose you can change between nor Ruth schrieb: > Hi, > > I want to do something really simple, which is take a table made of > pairs and normalize the first number in each pair by dividing by the > largest. > > For instance, I want to transform this list > > {{1,0.2},{2,0.3},{3,0.4},{4,0.5}} > > into this one > > {{1/4, 0.2}, {1/2, 0.3}, {3/4, 0.4}, {1, 0.5}} > > The way i did it is through the chain of commands > > firsttable={{1,0.2},{2,0.3},{3,0.4},{4,0.5}}; > > > top=Max[Table[firsttable[[i,1]],{i,1,Length[firsttable]}]]; > > > mytable=Do[newtable=ReplacePart[newtable,newtable[[i,1]]/top,{i, > 1}],{i,1,Length[firsttable]}] > > There must be a more elegant way to do it, but @&# and commands like > those are still hard to handle for me, and I could not work it out > > Thanks in advance, > > Ruth