SWITCH expression must be a scalar or string constant.
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
1 Kommentar
Antworten (2)
the cyclist
am 12 Aug. 2015
Your variable options is a struct. A struct cannot be used in that way in a switch statement.
2 Kommentare
Muthu Annamalai
am 12 Aug. 2015
Bearbeitet: Walter Roberson
am 12 Aug. 2015
Seems like the questioner is using odeset in wrong format; please refer to
Walter Roberson
am 12 Aug. 2015
Like I said in another Answer, you are using R11 or earlier.
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!