在 matlab 中从符号到数字
From symbolic to numeric in matlab
在我的问题中,有一些矩阵像
T_x=[ cos(q1) sin(q1+q2) cos(q1) -sin(q2);
0 0 1 -1;
sin(q4) 0 1 q1;
0 0 0 1]
此外,我有 q
值,例如:q=[0.2 0.05 -2 -3.5]
如何将 q
值插入 T_x
矩阵?
谢谢
一种方法是使用一个将值作为参数的矩阵返回函数:
>> T_x = @(q) [ cos(q(1)) sin(q(1)+q(2)) cos(q(1)) -sin(q(2));
0 0 1 -1;
sin(q(4)) 0 1 q(1);
0 0 0 1];
>> T_x([.2 .05 -2 -3.5])
ans =
0.9801 0.2474 0.9801 -0.0500
0 0 1.0000 -1.0000
0.3508 0 1.0000 0.2000
0 0 0 1.0000
这样做的好处是不需要符号包 - 它可以移植到 Octave。
您可以使用 subs
.
syms q1 q2 q3 q4
T_x = [ cos(q1) sin(q1+q2) cos(q1) -sin(q2);
0 0 1 -1;
sin(q4) 0 1 q1;
0 0 0 1];
q = [.2 .05 -2 -3.5];
subs(T_x, [q1 q2 q3 q4], q)
ans =
[ cos(1/5), sin(1/4), cos(1/5), -sin(1/20)]
[ 0, 0, 1, -1]
[ -sin(7/2), 0, 1, 1/5]
[ 0, 0, 0, 1]
double(ans)
ans =
0.9801 0.2474 0.9801 -0.0500
0 0 1.0000 -1.0000
0.3508 0 1.0000 0.2000
0 0 0 1.0000
只需为您想要的所有符号变量执行即可!
在我的问题中,有一些矩阵像
T_x=[ cos(q1) sin(q1+q2) cos(q1) -sin(q2);
0 0 1 -1;
sin(q4) 0 1 q1;
0 0 0 1]
此外,我有 q
值,例如:q=[0.2 0.05 -2 -3.5]
如何将 q
值插入 T_x
矩阵?
谢谢
一种方法是使用一个将值作为参数的矩阵返回函数:
>> T_x = @(q) [ cos(q(1)) sin(q(1)+q(2)) cos(q(1)) -sin(q(2));
0 0 1 -1;
sin(q(4)) 0 1 q(1);
0 0 0 1];
>> T_x([.2 .05 -2 -3.5])
ans =
0.9801 0.2474 0.9801 -0.0500
0 0 1.0000 -1.0000
0.3508 0 1.0000 0.2000
0 0 0 1.0000
这样做的好处是不需要符号包 - 它可以移植到 Octave。
您可以使用 subs
.
syms q1 q2 q3 q4
T_x = [ cos(q1) sin(q1+q2) cos(q1) -sin(q2);
0 0 1 -1;
sin(q4) 0 1 q1;
0 0 0 1];
q = [.2 .05 -2 -3.5];
subs(T_x, [q1 q2 q3 q4], q)
ans =
[ cos(1/5), sin(1/4), cos(1/5), -sin(1/20)]
[ 0, 0, 1, -1]
[ -sin(7/2), 0, 1, 1/5]
[ 0, 0, 0, 1]
double(ans)
ans =
0.9801 0.2474 0.9801 -0.0500
0 0 1.0000 -1.0000
0.3508 0 1.0000 0.2000
0 0 0 1.0000
只需为您想要的所有符号变量执行即可!