How do I evaluate a user-input trigonometric function?

3 次查看(过去 30 天)
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)')

采纳的回答

Birdman
Birdman 2017-11-21
n=input('enter a pos num\n');
x=linspace(0,n,1000);
trigfunc=input('Enter 1=sin(x), 2=cos(x), 3=tan(x), 4=cot(x)\n');
if(trigfunc==1)
y=sin(x);
plot(x,y);title(['sin(x) from [0 ' ,num2str(n), ']'])
elseif(trigfunc==2)
y=cos(x);
plot(x,y);title(['cos(x) from [0 ' ,num2str(n), ']'])
elseif(trigfunc==3)
y=tan(x);
plot(x,y);title(['tan(x) from [0 ' ,num2str(n), ']'])
elseif(trigfunc==4)
y=cot(x);
plot(x,y);title(['cot(x) from [0 ' ,num2str(n), ']'])
end

更多回答(2 个)

Stephen23
Stephen23 2017-11-21
编辑:Stephen23 2017-11-21
It is simpler to use str2func:
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
Prathap 2022-12-26
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.).

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by