I am trying to use the following matrices and perform a dot product as shown in the code. I checked the size of the matrices and all are (3, 1) but it is throwing me error for the last two dot products.
coordinate1 = [-7.173, -2.314, 2.811] coordinate2 = [-5.204, -3.598, 3.323] coordinate3 = [-3.922, -3.881, 4.044] coordinate4 = [-2.734, -3.794, 3.085] import numpy as np from numpy import matrix coordinate1i=matrix(coordinate1) coordinate2i=matrix(coordinate2) coordinate3i=matrix(coordinate3) coordinate4i=matrix(coordinate4) b0 = coordinate1i - coordinate2i b1 = coordinate3i - coordinate2i b2 = coordinate4i - coordinate3i n1 = np.cross(b0, b1) n2 = np.cross(b2, b1) n12cross = np.cross(n1,n2) x1= np.cross(n1,b1)/np.linalg.norm(b1) print np.shape(x1) print np.shape(n2) np.asarray(x1) np.asarray(n2) y = np.dot(x1,n2) x = np.dot(n1,n2) return np.degrees(np.arctan2(y, x))
By converting the matrix to array by using
n12 = np.squeeze(np.asarray(n2)) X12 = np.squeeze(np.asarray(x1))
solved the issue.
The column of the first matrix and the row of the second matrix should be equal and the order should be like this only
column of first matrix = row of second matrix
and do not follow the below step
row of first matrix = column of second matrix
it will throw an error
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With