Re: fit plane to xz axis of data

*To*: mathgroup at smc.vnet.net*Subject*: [mg89808] Re: fit plane to xz axis of data*From*: Ray Koopman <koopman at sfu.ca>*Date*: Sat, 21 Jun 2008 05:29:58 -0400 (EDT)*References*: <g3fvnb$klg$1@smc.vnet.net>

On Jun 20, 3:10 am, will parr <willpower... at hotmail.com> wrote: >> On Jun 14, 2:33 am, will parr >> <willpower... at hotmail.com> wrote: >>> [...] >>> Additionally, is it possible to compute a vector running parallel >>> to the long side (long axis of the SVD plane) of the computed >>> plane, originating at the mean (centroid) of the data, with a >>> length of 1? >>> [...] >> >> v rotates the {x,y,z} axes to the principal axes of the centered >> data: (#-m&/@data).v == u.w , which contains the projections of >> the centered points onto their principal axes. u is orthonormal, >> and w is diagonal, so you want u[[All,1]] . > > Thanks very much, but did you mean v[[All,1]]? as this gives > an answer in the form {x,y,z} (ie a 3D vector), specifically: > > {-0.722734, -0.690915, -0.0170901}, > > whereas u[[All,1]] gives a long list of values (ie not a vector). > > thanks again for your help, > > Will > It depends on what you think "vector" means. One of its meanings is a list of values, as in the Mathematica function VectorQ. u[[All,1]] is such a vector. It contains the normalized projections of the points onto the first principal axis of the centered data. v[[All,1]] contains the cosines of the first principal axis with the original {x,y,z} axes.