MATLAB的plot函数出现Conversion to double from sym is not possible问题
v=10k=0.05symstA=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]B=expm(A)R=B(1:3,1:...
v=10
k=0.05
syms t
A=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]
B=expm(A)
R=B(1:3,1:3)
P=B(1:3,4:4)
E=[0;0;1]
l=2
N=R*l*E+P
Z=N(3)
Y=N(2)
t=0:0.1:2
plot(t,Y)
最后plot的时候出现了Conversion to double from sym is not possible问题,不知道具体怎么解决了,求各位大侠帮忙解答,谢谢啦
如果可以的话,plot(Z,Y)应该怎么画呢? 展开
k=0.05
syms t
A=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]
B=expm(A)
R=B(1:3,1:3)
P=B(1:3,4:4)
E=[0;0;1]
l=2
N=R*l*E+P
Z=N(3)
Y=N(2)
t=0:0.1:2
plot(t,Y)
最后plot的时候出现了Conversion to double from sym is not possible问题,不知道具体怎么解决了,求各位大侠帮忙解答,谢谢啦
如果可以的话,plot(Z,Y)应该怎么画呢? 展开
展开全部
出现了Conversion to double from sym is not possible问题,是因为Y这个矩阵是一个符号矩阵,里面有t这个符号变量,所以无法画图。如果你希望t=0:0.1:2,那Y=subs(Y,t,s)把t换成数值,才能画图。
另外有一个问题,B=expm(A)这一句会使得矩阵B中有的元素是复数,导致把Y换成数值后是出现复数,那么画出来的图就不知道是不是你想要的。
下面是一些相关的东西:exp是对矩阵中各个数分别作exp,expm是对整个矩阵做exp.
我改了一下,你看看吧
v=10
k=0.05
syms t
A=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]
B=expm(A)
R=B(1:3,1:3)
P=B(1:3,4:4)
E=[0;0;1]
l=2
N=R*l*E+P
Z=N(3)
Y=N(2)
s=0:0.1:2
Y=subs(Y,t,s)
plot(s,Y)
另外有一个问题,B=expm(A)这一句会使得矩阵B中有的元素是复数,导致把Y换成数值后是出现复数,那么画出来的图就不知道是不是你想要的。
下面是一些相关的东西:exp是对矩阵中各个数分别作exp,expm是对整个矩阵做exp.
我改了一下,你看看吧
v=10
k=0.05
syms t
A=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]
B=expm(A)
R=B(1:3,1:3)
P=B(1:3,4:4)
E=[0;0;1]
l=2
N=R*l*E+P
Z=N(3)
Y=N(2)
s=0:0.1:2
Y=subs(Y,t,s)
plot(s,Y)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询