MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How Functions are Applied to Matrices

  • To: mathgroup at smc.vnet.net
  • Subject: [mg66088] Re: [mg66064] How Functions are Applied to Matrices
  • From: Darren Glosemeyer <darreng at wolfram.com>
  • Date: Sat, 29 Apr 2006 03:40:32 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Mean, StandardDeviation, and Total operate on matrix data as a list of data 
vectors (or equivalently a data matrix for multivariate data), so the 
results are column-wise.  As you've noted, the result you desire can be 
obtained using Map. Another possibility, assuming your lists are equal 
length, would be to work with Transpose[data] instead of data.

Darren Glosemeyer
Wolfram Research

At 06:32 AM 4/28/2006 -0400, Gregory Lypny wrote:
>Hello everyone,
>
>If I use functions, such as Mean, StandardDeviation, or Total, that
>operate on lists, they work the way I expect when applied to a single
>list.  So, for example, the mean of data[[2]] below is 5.25.
>However, when I apply Mean to the entire 3 x 4 matrix, which I
>understand to be three lists, I expect to get three means.  Instead I
>get four because Mean is operating on the columns and not the rows,
>that is, the four corresponding elements of each of the three lists.
>
>Why is that?
>
>         Greg
>
>
>data={{-9,8,3,1},{2,12,3,4},{-6,-9,-9,8}}
>
>The mean of the second list:
>
>In[182]:=
>Mean[data[[2]]]//N
>
>Out[182]=
>5.25
>
>Applying Mean to the whole matrix computes the mean of columns, not
>rows.
>
>In[181]:=
>Mean[data]//N
>
>Out[181]=
>{-4.33333,3.66667,-1.,4.33333}
>
>I need to Map it to have it applied to each list.
>
>In[183]:=
>Map[Mean,data]//N
>
>Out[183]=
>{0.75,5.25,-4.}


  • Prev by Date: "In progress" saving of data collected using Reap/Sow
  • Next by Date: Re: How Functions are Applied to Matrices
  • Previous by thread: Re: How Functions are Applied to Matrices
  • Next by thread: Re: How Functions are Applied to Matrices