Error using feval Function to evaluate must be represented as a string scalar, character vector, or function_handle object.

f(t)=[-cos(t), -sin(t), 2*cos(t)^3 - 7*cos(t)*sin(t)^2]
feval(f(t),3.14)
I'd like to evaluate the vector value function above at 3.14, but I get the error message in the subject line. How do I fix this?

1 commentaire

The error messages are listed below:
Error using feval
Function to evaluate must be represented as a string scalar, character vector, or function_handle object.
Error in untitled2 (line 2)
feval(f(t),3.14)

Connectez-vous pour commenter.

 Réponse acceptée

Another approach, if you don't want to work symbolically as @Walter Roberson did, is to create an anonymous function. All I needed to do was move the equals sign and add an @ symbol.
f = @(t) [-cos(t), -sin(t), 2*cos(t)^3 - 7*cos(t)*sin(t)^2]
f = function_handle with value:
@(t)[-cos(t),-sin(t),2*cos(t)^3-7*cos(t)*sin(t)^2]
feval(f,3.14)
ans = 1×3
1.0000 -0.0016 -2.0000
But with an anonymous function you don't even need feval.
y = f(3.14)
y = 1×3
1.0000 -0.0016 -2.0000
Given what you're doing the pi function may be of interest to you, as may the cospi and sinpi functions.

Plus de réponses (1)

syms t
f(t)=[-cos(t), -sin(t), 2*cos(t)^3 - 7*cos(t)*sin(t)^2]
f(t) = 
Then
output = feval(f,3.14) %must "use" the output
output = 
or
f(3.14) %do not need to "use" the output
ans = 
or
subs(f(t), t, 3.14) %do not need to "use" the output
ans = 

Catégories

En savoir plus sur Simulink dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by