Switch does not work in GUI
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
While running my code through a GUI the SWITCH function does that detect the cases, or maybe it just jumps to the bottom otherwise every time.
contents = cellstr(get(S.element,'String'));
t1 = contents{get(S.element,'Value')};
t = char(t1);
contents = cellstr(get(S.mass,'String'));
u1 = contents{get(S.mass,'Value')};
u = char(u1);
contents = cellstr(get(S.volume,'String'));
v1 = contents{get(S.volume,'Value')};
v = char(v1);
global dens
switch t
case strcmp(t,'Scandium')
dens = 2.989;
case strcmp(t,'Yttrium')
dens = 4.469;
case strcmp(t,'Selenium')
dens = 4.809;
case strcmp(t,'Krypton')
dens = .003733;
case strcmp(t,'Neodymium')
dens = 7.007;
case strcmp(t,'Antimony')
dens = 6.685;
case strcmp(t,'Astatine')
dens = 7;
otherwise
dens = 8.55;
end
Every time it jumps to the other wise option of -- dens = 8.55.
0 comentarios
Respuesta aceptada
Walter Roberson
el 9 de Nov. de 2012
You need to convert
switch t
to
switch true
because the value that you give in the "switch" is compared to the values of the "case" statements, and the values of the case statements are the result of the strcmp() and hence are true or false.
Alternately, leave it as "switch t" and remove the strcmp()
case 'Yttrium'
1 comentario
Walter Roberson
el 10 de Nov. de 2012
Editada: Walter Roberson
el 10 de Nov. de 2012
Consider this:
densities = struct('scandium', 2.989', 'yttrium', 4.469, 'selenium', 4.809);
tl = lower(t);
if isfield(densities,tl)
dens = densities.(tl);
else
error('not a known element')
end
Más respuestas (2)
Image Analyst
el 10 de Nov. de 2012
Try it like this:
switch lower(t)
case 'scandium'
dens = 2.989;
case 'yttrium'
dens = 4.469;
case 'selenium'
dens = 4.809;
case 'krypton'
dens = .003733;
case 'neodymium'
dens = 7.007;
case 'antimony'
dens = 6.685;
case 'astatine'
dens = 7;
otherwise
dens = 8.55;
end
0 comentarios
Ver también
Categorías
Más información sobre Dialog Boxes 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!