Error conversion to double from sym is not possible
1 次查看(过去 30 天)
显示 更早的评论
i am encountering this error trying to plot these functions :
syms t A OA omg si
r=A*t+OA;
theta=omg*t;
phi=si*t;
rd=diff(r,t);
thetad=diff(theta,t);
phid=diff(phi,t);
omg=10*(pi/180);
si=7*(pi/180);
A=0.5;
tn=90/si;
a_r=-(r*phid^2)-(r*thetad^2*(cos(phi))^2)
a_theta=(cos(phi)/r)*diff(((r^2)*thetad),t)-(2*r*thetad*phid*sin(phi))
a_phi=(1/r)*diff((r^2*phid),t)+r*thetad^2*sin(phi)*cos(phi)
td=0:1:tn;
a_r=-(r*phid^2)-(r*thetad^2*(cos(phi))^2)
a_theta=(cos(phi)/r)*diff(((r^2)*thetad),t)-(2*r*thetad*phid*sin(phi))
a_phi=(1/r)*diff((r^2*phid),t)+r*thetad^2*sin(phi)*cos(phi)
a_r1=subs(a_r,t,td);
plot(td,a_r1)
this is the error :
Error using plot
Conversion to double from sym
is not possible.
Error in p6 (line 23)
plot(t,a_r1)
what should i have done ?
0 个评论
回答(1 个)
Marc Jakobi
2016-10-7
The line
td = 0:1:tn
creates a double. So the line
a_r1=subs(a_r,t,td);
also creates a double. With
plot(t,a_r1)
you are using a double and a sym together, which Matlab can't handle.
5 个评论
Marc Jakobi
2016-10-7
Matlab recognizes any sym you declare with "syms" as a variable and not as a constant. So if you want to be able to plot it, you will have not choice but to declare omg, si and A as constants with fixed values if you want to plot them. You can still change the values at other times.
Walter Roberson
2016-10-9
You can subs() in particular numeric values for the variables in order to plot.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!