Error conversion to double from sym is not possible
8 ビュー (過去 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 で Get Started with Symbolic Math Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!