How do I evaluate a user-input trigonometric function?

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)')

 采纳的回答

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 个)

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.
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.).

类别

帮助中心File 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