Rendimiento de `eval` en comparación con` str2func` para evaluar una función desde una cadena
eval
ystr2func
ambos pueden evaluar una función representada por una cadena, p. ej.f='a^x+exp(b)+sin(c*x)+d'
:
Utilizandoeval
:
y = eval(f)
o (sugerido por rahnema1)
fHandle = eval(['@(x, a, b, c, d) ' f]);
y = fHandle(x, a, b, c, d);
Utilizandostr2func
:
fHandle = str2func(['@(x, a, b, c, d) ' f]);
y = fHandle(x, a, b, c, d);
¿Cuál de los dos métodos tiene el mejor rendimiento?
Observaciones
Tenga en cuenta que este punto de referencia está inspirado enesta pregunta.
Tenga en cuenta que soy consciente de que usareval
ystr2func
a menudo es una mala práctica[1][2] (como se menciona en los comentarios).