MathGroup Archive 2011

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

Search the Archive

Re: Matrices as operators

  • To: mathgroup at
  • Subject: [mg123030] Re: Matrices as operators
  • From: "David Park" <djmpark at>
  • Date: Mon, 21 Nov 2011 04:26:44 -0500 (EST)
  • Delivered-to:
  • References: <20684718.1421.1321782772955.JavaMail.root@m06>

In this case there is a simple answer. Just use RotationMatrix.


{{Cos[t], -Sin[t]}, {Sin[t], Cos[t]}}

But if you had an operator that wasn't built in, then Presentations has a
routine, PushOnto, that will push arguments onto specific forms and is much
more convenient than Through.

<< Presentations`

{{Cos, -Sin}, {Sin, Cos}}[t];
% // PushOnto[ {Sin, Cos}]

{{Cos[t], -Sin[t]}, {Sin[t], Cos[t]}}

David Park
djmpark at 

From: Chris Young [mailto:cy56 at]

I'd like to be able to abbreviate matrices such as rotation matrices so
that I don't have to repeat the argument. This way I can pass in more
complicated arguments and it also shows the structure of the
transformation more clearly.

Through[( {
    {Cos, -Sin},
    {Sin, Cos}
   } )[=CE=B8]]

will get me partway there:

Out: {{Cos, -Sin}[=CE=B8], {Sin, Cos}[=CE=B8]}

I have to apply Thread and Through again to finally get what I want:

In: Thread[Through[{{Cos, -Sin}[=CE=B8], {Sin, Cos}[=CE=B8]}]]

Out: {{Cos[=CE=B8], (-Sin)[=CE=B8]}, {Sin[=CE=B8], Cos[=CE=B8]}}

Is there a shortcut way to do this all in one step?

Thanks very much for any help.

Chris Young
cy56 at

  • Prev by Date: Re: Timing function
  • Next by Date: Re: Help needed - Mathematica code
  • Previous by thread: Re: Matrices as operators
  • Next by thread: Re: Matrices as operators