, bu v
ile 3 x N
dizi çarpılabilir Bu gibi vektörler,:Dönme
v_rotated = R.dot(v)
Şimdi bir N x M x 3
dizi N
kez N
farklı 3 x 3
dönüş matrisler (vektörlerin her "satır" için bir rotasyon matrisi) ile dönmek üzere isteyen M
vektörler olduğunu varsayalım. Bu bir döngü ile yapmak için basittir, ancak bunu yapmak için daha hızlı ve daha kompakt (vectorized) bir yol var, örn. numpy
's dot
veya tensorproduct
ile mi? döngü uygulanması için
örnek kod:
from numpy import cos, sin, array, pi, linspace, random
# 100 different rotation matrices:
R = [array([[1, 0, 0], [0, cos(theta), -sin(theta)], [0, sin(theta), cos(theta)]]) for theta in linspace(0, pi, 100)]
# 100 x 200 random vectors:
v = random.random((100, 200, 3))
# rotate vectors in loop:
rotated_v = array([R_.dot(v_.T).T for R_, v_ in zip(R, v)])
Paylaş biz herhangi bir çözüm önerisini geri kontrol edebilir, böylece hayata varsa loopy kodu? – Divakar
@Divakar döngüsel kod ekledi (elbette oyuncak örneği) – sulkeh