Briefly:
np.dot
is the dot product of two matrices.
|A B| . |E F| = |A*E+B*G A*F+B*H|
|C D| |G H| |C*E+D*G C*F+D*H|
Whereas np.multiply
does an element-wise multiplication of two matrices.
|A B| ⊙ |E F| = |A*E B*F|
|C D| |G H| |C*G D*H|
When used with np.sum
, the result being equal is merely a coincidence.
>>> np.dot([[1,2], [3,4]], [[1,2], [2,3]])
array([[ 5, 8],
[11, 18]])
>>> np.multiply([[1,2], [3,4]], [[1,2], [2,3]])
array([[ 1, 4],
[ 6, 12]])
>>> np.sum(np.dot([[1,2], [3,4]], [[1,2], [2,3]]))
42
>>> np.sum(np.multiply([[1,2], [3,4]], [[1,2], [2,3]]))
23
A ->
[
[ 0.80146943 -0.21554566 -0.55784122]
[ 0.42798962 0.85823727 0.28329079]
[ 0.41769803 -0.46579915 0.78010224]
]
B -> [-0.54362 -0. -0. ]
=======================================================
M_parent.dot(joint.offset) ->
[-0.43569481 -0.23266371 -0.227069 ]
By docs :
Any suggestion ?