[Date Index]
[Thread Index]
[Author Index]
Re: Vector operations,
*To*: mathgroup at smc.vnet.net
*Subject*: [mg70018] Re: [mg69993] Vector operations,
*From*: Murray Eisenberg <murray at math.umass.edu>
*Date*: Sat, 30 Sep 2006 05:12:52 -0400 (EDT)
*Organization*: Mathematics & Statistics, Univ. of Mass./Amherst
*References*: <200609291048.GAA22401@smc.vnet.net>
*Reply-to*: murray at math.umass.edu
I presume you used:
<<Geometry`Rotations`
Let's take, for example:
mat = RotationMatrix2D[Pi/3];
If you had wanted to rotate a single vector, say
v={1,2}
by that matrix, you would use the dot product:
mat.v
Now the dot infix notation is an abbreviation for the actual function
involved, namely, Dot. That is, the expression "mat.v" is shorthand for:
Dot[mat, v]
So you have a two-argument function Dot that you want to use with a
fixed first argument (mat) but various second arguments. The standard
way to handle this in Mathematica is to form a pure function like this:
Dot[mat, #]&
(That's a nameless function that dots things with mat.)
Finally, to cause this function to act upon each of the vectors in a
list of vectors such as....
vectors = {{1/2, 1/2}, {1, 0}, {0, 1}, {0, 0}};
use the function Map:
Map[Dot[mat, #]&, vectors]
The result will be the desired list of rotated vectors.
One more thing, to avoid the nested brackets, you can use the
abbreviation func /@ lis instead of Map[func, lis]. With this
abbreviation, then, the desired expression to rotate all the vectors is:
Dot[mat, #]& /@ vectors
Of course if you're going to be repeatedly rotating vectors by the same
angle, you may want to define a function to do it:
rot[vec_] := mat.vec
Then to rotate all the vectors in the list at once:
Map[rot, vectors]
or, abbreviated:
rot /@ vectors
Isn't that nice!
mickey wrote:
> Hi,
>
> I have a list of vectors such as
>
> {{1/2, 1/2}, {1, 0}, {0, 1}, {0, 0}}
>
> I want to rotate them all by the same angle. Right now, what I do is
> multiply each by RotationMatrix2D[t] and iterate over the list. Is there
> a more efficient way to do this?
>
> Thanks,
> -M
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
Prev by Date:
**Re: Re: equation question**
Next by Date:
**RE: Re: Re: distance function**
Previous by thread:
**Vector operations,**
Next by thread:
**Re: Vector operations,**
| |