Filter löschen
Filter löschen

SWITCH expression must be a scalar or string constant.

15 Ansichten (letzte 30 Tage)
garrett schander
garrett schander am 12 Aug. 2015
Bearbeitet: Stephen23 am 12 Aug. 2015
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

Antworten (2)

the cyclist
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
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
Stephen23
Stephen23 am 12 Aug. 2015
Bearbeitet: Stephen23 am 12 Aug. 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.

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 12 Aug. 2015

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by