Re: Select Maximum Value
- To: mathgroup at smc.vnet.net
- Subject: [mg107943] Re: Select Maximum Value
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Wed, 3 Mar 2010 05:53:07 -0500 (EST)
On 3/2/10 at 3:36 AM, graser at gmail.com (graser) wrote: >I want to pick up the maximum value of each list in the Array >A={{2, 4, 1, 3, 2, 2}, {4,7,9,1,2,4}} >I can do it in two steps.. >B=Table[Sort[A[[i]], #1>#2&], {i, 1, Length[A]}]; >C=Table[B[i], {i, 1, Length[B]}]; >But is there any way I can do it in just one step with Select >function or any thing else? There are several problems with your code. First, it is unwise to use uppercase letters as variables since in several cases that will conflict with built-in symbols. In particular an upper case C has a built-in meaning. You have defined b to be a 2-D array. Yet the code for setting the value of c treats b as a function. I assume you meant the following where I have changed your variables to lower case: a = {{2, 4, 1, 3, 2, 2}, {4, 7, 9, 1, 2, 4}}; b = Table[Sort[a[[i]], #1 > #2 &], {i, 1, Length[a]}]; c = Table[b[[i]], {i, 1, Length[b]}]; Note, the code here that creates b is an identity function. The following does the same thing in one step In[4]:= d = Reverse[Sort@#] & /@ a; {d == b, d == c} Out[5]= {True,True} But this clearly does not find the maximum value of each list. That would be done as In[6]:= Max /@ a Out[6]= {4,9} Or perhaps you wanted this In[7]:= Max /@ Transpose[a] Out[7]= {4,7,9,3,2,4}