필터 지우기
필터 지우기

Strange output using symbols in a matrix

조회 수: 14 (최근 30일)
Jason Gauthier
Jason Gauthier 2018년 10월 13일
댓글: Jason Gauthier 2018년 10월 13일
I always seem to have some weird results when using symbols in matrices. I wrote a simple function that generates a transformation matrix based on arguments.
function rot = dh_t (a,alpha, d, theta)
rot = [cos(theta) -sin(theta) 0 a;...
sin(theta)*cos(alpha) cos(theta)*cos(alpha) -sin(alpha) -d*sin(alpha);...
sin(theta)*sin(alpha) cos(theta)*sin(alpha) cos(alpha) d*cos(alpha);...
0 0 0 1]
end
When I call this function:
dh_t(0,pi/2,L1,t2)
I get an ugly output.
[ cos(t2), -sin(t2), 0, 0]
[ (4967757600021511*sin(t2))/81129638414606681695789005144064, (4967757600021511*cos(t2))/81129638414606681695789005144064, -1, -L1]
[ sin(t2), cos(t2), 4967757600021511/81129638414606681695789005144064, (4967757600021511*L1)/81129638414606681695789005144064]
[ 0, 0, 0, 1]
I stick this in my calculator where I wrote an equivalent function:
[cos(t2) sin(t2) 0 0]
[sin(t2) cos(t2) 0 0]
[0 0 1 l1]
[0 0 0 1]
Suggestions are welcome on how to handle this. Thanks!
  댓글 수: 2
madhan ravi
madhan ravi 2018년 10월 13일
I stick this in my calculator where I wrote an equivalent function:
What do you mean by this? can you elaborate more?
Jason Gauthier
Jason Gauthier 2018년 10월 13일
Yes. It doesn't happen with my Ti-Inspire calculator.

댓글을 달려면 로그인하십시오.

답변 (2개)

Walter Roberson
Walter Roberson 2018년 10월 13일
dh_t(0,sym(pi)/2,L1,t2)

Star Strider
Star Strider 2018년 10월 13일
Use the vpa (link) function.
Result = vpa(dh_t(0,pi/2,L1,t2), 3)
  댓글 수: 3
Jason Gauthier
Jason Gauthier 2018년 10월 13일
although that appears more to be an issue with cos/sin inaccuracies.
Star Strider
Star Strider 2018년 10월 13일
I suspect that the TI-inspire is not using the extended-precision representation that the Symbolic Math Toolbox does. It may instead be using the IEEE 754 standard, and considers 6.12e-17 as essentially 0.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

태그

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by