Error conversion to double from sym is not possible

1 Ansicht (letzte 30 Tage)
Erfan Hamdi
Erfan Hamdi am 7 Okt. 2016
Kommentiert: Walter Roberson am 9 Okt. 2016
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 ?

Antworten (1)

Marc Jakobi
Marc Jakobi am 7 Okt. 2016
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 Kommentare
Marc Jakobi
Marc Jakobi am 7 Okt. 2016
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
Walter Roberson am 9 Okt. 2016
You can subs() in particular numeric values for the variables in order to plot.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by