How do I evaluate a user-input trigonometric function?
Afficher commentaires plus anciens
I'm not entirely sure how to explain this but here is the question:

My main issue is I don't know how to use eval when using a user-input trigonometric function. (I don't really need help with the graphing part).
This is my attempt:
n = input('Enter a positive number n: ');
x = linspace(0, n, 1000)
trigfunc = input('Enter a trigonometric function: ', 's');
eval('trigfunc(x)')
1 commentaire
"Then, by using the function eval..."
Ugh, why teach impressionable students such awful programming practices?
Why not simply use a basic look-up, or str2func() or feval() ?
Réponse acceptée
Plus de réponses (2)
num = str2double(input('End value of vector: ','s'));
fun = str2func(input('Trig function (e.g. sin, cos, etc.): ','s'));
x = linspace(0,num,1000);
y = fun(x);
plot(x,y)
To which it is also easy to add input checking, etc.
Prathap
le 26 Déc 2022
0 votes
Plot the trigonometric curve as a function of time. Hint: Use ‘eval’ function within the script to accept different trigonometric functions (e.g., sin, cos, tan, etc.).
1 commentaire
Stephen23
le 26 Déc 2022
Much Better Hint: Use STR2FUNC() function within the script to accept different trigonometric functions:
Catégories
En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!