subs command is not working on differentiation in MATLAB
Show older comments
I have defined theta1 and theta2 as my random functions of time. I have defined vec_a1 and vec_v1 by differentiaing them. Afterwards when I am defining theta1 and theta2 and trying to evaluate vec_a1 and vec_v1 it is not converting to numerical values.
g = -9.81;
I1=1;I2=1.5;l1=2;l2=1;rho1=1.1;rho2=0.4;
syms theta1(t) theta2(t)
vec_rho1 = [rho1*cos(theta1), rho1*sin(theta1)];
vec_l1 = [l1*cos(theta1), l1*sin(theta1)];
vec_rho2 = vec_l1 + [rho2*cos(theta2), rho2*sin(theta2)];
vec_l2 = vec_l1 + [l2*cos(theta2), l2*sin(theta2)];
vec_v1 = diff(vec_rho1, t);
vec_a1 = diff(vec_v1, t);
vec_v2 = diff(vec_rho2, t);
vec_a2 = diff(vec_v2, t);
theta1=0.02*t;
theta2=0.3*t;
xx=1
vec_a1=subs(vec_a1)
x=vec_a1(xx);
x=double(x)
3 Comments
Torsten
on 4 Jun 2022
Show the complete code (including declaration of variables).
The lines
vec_a1=subs(vec_a1);
x=subs(vec_a1(xx));
don't make sense.
You don't tell MATLAB which variable in vec_a1 shall be substituted and by what.
Further, vec_a1 is not a function - so what does vec_a1(xx) mean (where xx itself is also not defined anywhere) ?
Walter Roberson
on 5 Jun 2022
subs(expression) is well defined. It means that matlab should look through all of the symvar() and replace them by their values in scope.
SOUVIK BASAK
on 5 Jun 2022
Edited: SOUVIK BASAK
on 5 Jun 2022
Answers (2)
g = -9.81;
I1=1;I2=1.5;l1=2;l2=1;rho1=1.1;rho2=0.4;
syms theta1(t) theta2(t)
theta1=0.02*t;
theta2=0.3*t;
vec_rho1 = [rho1*cos(theta1), rho1*sin(theta1)];
vec_l1 = [l1*cos(theta1), l1*sin(theta1)];
vec_rho2 = vec_l1 + [rho2*cos(theta2), rho2*sin(theta2)];
vec_l2 = vec_l1 + [l2*cos(theta2), l2*sin(theta2)];
vec_v1 = diff(vec_rho1, t);
vec_a1 = diff(vec_v1, t);
vec_v2 = diff(vec_rho2, t);
vec_a2 = diff(vec_v2, t);
xx=1;
x=subs(vec_a1,t,xx)
double(x)
Walter Roberson
on 5 Jun 2022
theta1(t)=0.02*t;
theta2(t)=0.3*t;
That is, you had replaced the function theta1 (a function of t) with the symbolic variable theta1 that was not a function.
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
