another basic question for a beginner

1 visualización (últimos 30 días)
Eliraz Nahum
Eliraz Nahum el 21 de Sept. de 2018
Respondida: Star Strider el 21 de Sept. de 2018
I saw the 2 forms of writing:
  • fzero(f,x0)
  • fsolve(@(x)f,xo)
in both cases we use symbolic function (f) before the above orders.
I am trying to understand why in the first case we could write only "f", while in the second one we had to write the whole expression "@(x)f"?

Respuesta aceptada

Star Strider
Star Strider el 21 de Sept. de 2018
Without knowing the relevant context, it is difficult to say.
The first syntax:
fzero(f,x0)
implies that ‘f’ is a function of one variable, and already exists in the workspace as a function handle.
The second syntax:
fsolve(@(x)f,x0)
actually throws this error when I run it (in R2018b):
Error using fsolve (line 281)
FSOLVE requires all values returned by functions to be of data type double.
The correct way to use that syntax is to express ‘f’ as a function to be evaluated:
fsolve(@(x)f(x),x0)
and this works correctly.

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by