Matrix Multiplication with Trigonometric Functions
Show older comments
a = theta1
b = theta2
A = [cos(a+pi) -sin(a+pi)cos(pi/2) sin(a+pi)sin(pi/2) -0.033cos(a+pi);
sin(a+pi) cos(a+pi)cos(pi/2) -cos(a+pi)sin(pi/2) -0.033sin(a+pi);
0 sin(pi/2) cos(pi/2) 0.145;
0 0 0 1]
B = [cos(b+(pi/2)) -sin(b+(pi/2))cos(0) sin(b+(pi/2))sin(0) 0.155cos(b+(pi/2));
sin(b+(pi/2)) cos(b+(pi/2))cos(0) -cos(b+(pi/2))sin(0) 0.155sin(b+(pi/2));
0 sin(0) cos(0) 0;
0 0 0 1]
Answer = A*B;
Answers (1)
Rik
on 1 Dec 2021
1 vote
The solution is in the error message: in Matlab you need to explicitly use the * operator. In mathematical notation you can generally leave those out, but here you need them.
5 Comments
If you define theta1 and theta2 as variables, your code runs:
theta1=pi*2/3;theta2=2;
a = theta1;
b = theta2;
A = [cos(a+pi) (-sin(a+pi))*cos(pi/2) (sin(a+pi))*sin(pi/2) -0.033*cos(a+pi);
sin(a+pi) (cos(a+pi))*cos(pi/2) (-cos(a+pi))*sin(pi/2) -0.033*sin(a+pi);
0 sin(pi/2) cos(pi/2) 0.145;
0 0 0 1];
B = [cos(b+(pi/2)) -sin(b+(pi/2))*(cos(0)) sin(b+(pi/2))*(sin(0)) 0.155*cos(b+(pi/2));
sin(b+(pi/2)) cos(b+(pi/2))*(cos(0)) -cos(b+(pi/2))*(sin(0)) 0.155*sin(b+(pi/2));
0 sin(0) cos(0) 0;
0 0 0 1];
Answer = A*B
N Soomro
on 1 Dec 2021
syms theta_1 theta_2
pi = sym(pi);
a = theta_1;
b = theta_2;
A = [cos(a+pi) (-sin(a+pi))*cos(pi/2) (sin(a+pi))*sin(pi/2) -0.033*cos(a+pi);
sin(a+pi) (cos(a+pi))*cos(pi/2) (-cos(a+pi))*sin(pi/2) -0.033*sin(a+pi);
0 sin(pi/2) cos(pi/2) 0.145;
0 0 0 1];
B = [cos(b+(pi/2)) -sin(b+(pi/2))*(cos(0)) sin(b+(pi/2))*(sin(0)) 0.155*cos(b+(pi/2));
sin(b+(pi/2)) cos(b+(pi/2))*(cos(0)) -cos(b+(pi/2))*(sin(0)) 0.155*sin(b+(pi/2));
0 sin(0) cos(0) 0;
0 0 0 1];
Answer = A*B
simplify(Answer)
N Soomro
on 2 Dec 2021
Categories
Find more on Number Theory 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!

