<br><br><div class="gmail_quote">On Mon, Apr 27, 2009 at 1:24 PM, Mathew Yeates <span dir="ltr">&lt;<a href="mailto:myeates@jpl.nasa.gov">myeates@jpl.nasa.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I should add, I&#39;m starting with N rotation angles. So I should rephrase<br>
and say I&#39;m starting with N angles and N xy pairs.<br>
<div><div></div><div class="h5"><br>
<br>
<br>
Mathew Yeates wrote:<br>
&gt; I know this must be trivial but I can&#39;t seem to get it right<br>
&gt;<br>
&gt; I have N 2x2 arrays which perform a rotation. I also have N xy pairs to<br>
&gt; transpose. What is the simplest way to perform the transformation<br>
&gt; without looping?<br>
&gt;</div></div></blockquote><div><br>Well, in two dimensions complex multiplication should do the trick. <br><br><span style="font-family: courier new,monospace;">In [18]: v = array([1]*4, dtype=complex)</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">In [19]: a = arange(4)*pi/2</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">In [20]: around(exp(1j*a)*v,5)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Out[20]: array([ 1.+0.j,  0.+1.j, -1.+0.j, -0.-1.j])</span><br style="font-family: courier new,monospace;">
<br>Chuck<br></div><br></div><br>