Matrix Multiplication with Trigonometric Functions
조회 수: 35 (최근 30일)
이전 댓글 표시
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;
댓글 수: 0
답변 (1개)
Rik
2021년 12월 1일
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
Walter Roberson
2021년 12월 2일
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)
참고 항목
카테고리
Help Center 및 File Exchange에서 Number Theory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


