Help with using a switch statement
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Marina Christakos
el 23 de En. de 2019
I was supposed to write a code that asks for a letter and a number. If the variables 'c', 't', or 's' were entered, it should find the cosine, tangent, or sine of the entered number. (also had to use a switch statement). When I run my code it asks for the number and letter but doesn't compute anything. How would I change my code to actually compute the value of the entered number?
q = input('enter number');
letter = input('enter letter');
't' == 'tangent';
'c' == 'cosine';
's' == 'sine';
switch letter
case {'s'}
letter = 's';
disp(sine(q));
case {'c'}
letter = 'c';
disp(cosine(q));
case {'t'}
letter = 't';
disp(tangent(q));
otherwise
letter = 'unknown';
end
0 comentarios
Respuesta aceptada
Stephen23
el 23 de En. de 2019
Editada: Stephen23
el 23 de En. de 2019
val = str2double(input('enter number','s'));
chr = input('enter letter','s');
switch chr
case 's'
disp(sin(val))
case 'c'
disp(cos(val))
case 't'
disp(tan(val))
otherwise
error('oh no!')
end
A simple internet search would have quickly shown you the correct functions for calculating the sine, cosine, and tangent. Reading the documentation is much more reliable than guessing.
Note that all of your lines with == do nothing: e.g. the line
't' == 'tangent';
performs an element-wise comparison of the characters in the character vector 'tangent' with the single character 't'. Without even running that code I can tell you that the output will be:
[1,0,0,0,0,0,1]
because only the first and last characters are t's. In any case, you do not allocate this logical vector to anything, or use it in any way, so it is simply discarded. Ditto all the other == lines.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Shifting and Sorting 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!