SWITCH expression must be a scalar or string constant.
11 views (last 30 days)
Show older comments
i changed up the file a bit to see if it would run the same and im still getting errors
tspan=[0 25];
y0=[0.1;0;0.2;0];
options=odeset('mass','M(t,y)');
switch options
case ''
M1=1;
M2=1;
g=9.81;
l1=1;
l2=1;
a=M2*9.81;
b=M1*9.81;
p=zeros(4,1);
p(1)=y0(2);
p(2)=-(b+a)*sin(y0(1))+M2*l2*(y0(4)^2)*sin(y0(3)-y0(1));
p(3)=y0(4);
p(4)=-a*sin(y0(3))-M2*l1*(y0(2)^2)*sin(y0(3)-y0(1));
m=p;
case 'mass'
M1=1;
M2=1;
g=9.81;
l1=1;
l2=1;
a=[1,0,0,0];
b=[0,(M1+M2)*l1,0,M2*l2*cos(y0(3)-y0(1))];
c=[0,0,1,0];
d=[0,M2*l1*cos(y0(3)-y0(1)),0,M2*l2];
m=[a;b;c;d];
otherwise
error(['unknown flag ''' flag '''.']);
end
[t,y]=ode113(m,tspan,y0,options);
subplot(2,1,1)
plot(t,y(:,1))
grid
xlabel('Time')
ylabel('Theta1')
subplot(2,1,2)
plot(t,y(:,3))
grid
xlabel('Time')
ylabel('Theta2')
SWITCH expression must be a scalar or string constant.
Error in GSFE (line 5) switch options
Answers (2)
the cyclist
on 12 Aug 2015
Your variable options is a struct. A struct cannot be used in that way in a switch statement.
2 Comments
Muthu Annamalai
on 12 Aug 2015
Edited: Walter Roberson
on 12 Aug 2015
Seems like the questioner is using odeset in wrong format; please refer to
Walter Roberson
on 12 Aug 2015
Like I said in another Answer, you are using R11 or earlier.
0 Comments
See Also
Categories
Find more on Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!