SWITCH expression must be a scalar or string constant.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentario
Respuestas (2)
the cyclist
el 12 de Ag. de 2015
Your variable options is a struct. A struct cannot be used in that way in a switch statement.
2 comentarios
Muthu Annamalai
el 12 de Ag. de 2015
Editada: Walter Roberson
el 12 de Ag. de 2015
Seems like the questioner is using odeset in wrong format; please refer to
Stephen23
el 12 de Ag. de 2015
Editada: Stephen23
el 12 de Ag. de 2015
@garrett schander: In fact referring to the documentation would resolve your other question too. Although beginners seem to be allergic to reading the documentation, it does actually explain how functions and operators should be used.
Walter Roberson
el 12 de Ag. de 2015
Like I said in another Answer, you are using R11 or earlier.
0 comentarios
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!