2012-08-27 14 views
13

में एक रोटेशन मैट्रिक्स के साथ अंक का एक सेट बारी बारी से मैं आकार (N,3) और आकार (3,3) साथ एक रोटेशन मैट्रिक्स R साथ numpy सरणी A में संग्रहीत 3 डी अंक की एक सूची है। मैं में प्रत्येक बिंदु x के लिए R.x के डॉट उत्पाद की गणना करना चाहता हूं। नैतिक रूप से मैं यह कर सकता हूं:कुशलतापूर्वक numpy

for n in xrange(N): 
    A[n,:] = dot(R, A[n,:]) 

क्या मूल देशी कॉल के साथ इसे सदिश करने का कोई तरीका है? यदि यह मायने रखता है, तो एन कुछ हज़ारों के क्रम में है।

उत्तर

19

आप रोटेशन मैट्रिक्स के पक्षांतरित के साथ एक गुणा कर सकते हैं:

A = dot(A, R.T)