rotation matrix between two coordinate systems matlab

85 views (last 30 days)
I have a coordinate system A
Example: 3 principal vector direction of system A are:
e0= [0.3898 -0.0910 0.9164]
e1= [0.6392 0.7431 -0.1981]
e2= [-0.6629 0.6630 0.3478]
And, I have a cartesian coordinate system B with three unit vector
nx=[1 0 0]
ny=[0 1 0]
nz=[0 0 1]
How can i find transformation matrix between two coordinate systems A & B ?
  2 Comments
Güinther SAIBRO
Güinther SAIBRO on 14 Sep 2017
Edited: Güinther SAIBRO on 14 Sep 2017
I didn't understand why do you need the last space vectors with you already have the transformation matrix.
If you are trying to do a space transformation from R^n to R^m you just need a m x n matrix and to multiply this matrix to a column vector in R^n.
In your case, you can write:
A= [0.3898 -0.0910 0.9164; 0.6392 0.7431 -0.1981; -0.6629 0.6630 0.3478];
P = [ [x'1;y'1;z'1] [x'2;y'2;z'2] ... ] % The idea is that you need column vectors of x,y and z.
and just P_R3 = A*P;
I believe that this can solve your problem.

Sign in to comment.

Accepted Answer

Jan
Jan on 16 Sep 2017
E = [e0; e1; e2]
is the transformation matrix already for the rotation. There seems to be a translation of the origin in addition, such that you need to add this vector afterwards also.
  1 Comment
ha ha
ha ha on 20 Sep 2017
Edited: ha ha on 20 Sep 2017
i think my question is not clear. Please see my new question:
https://jp.mathworks.com/matlabcentral/answers/357494-how-to-find-rotation-matrix-from-vector-to-another

Sign in to comment.

More Answers (0)

Categories

Find more on 線形代数 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!