Creating an inline-function in dependence of a parameter
Afficher commentaires plus anciens
Hello,
I want to use the newtzero-function which is not able to handle functions with parameters, so I thougth about writing a method which returns an inline function depending on a parameter, for example: fun_gen (5) should return inline('5*x^2').
Any guess?
Réponses (3)
Jonas Reber
le 31 Mai 2011
0 votes
maybe str2func is what you are looking for?
Oleg Komarov
le 31 Mai 2011
c = 5;
f1 = inline([sprintf('%d',c) '*x^2'])
f2 = str2func(['@(x)' sprintf('%d',c) '*x^2'])
isequal(f1(2),f2(2)) % ok
Walter Roberson
le 31 Mai 2011
You can do it with anonymous functions instead of inline:
fun_gen = @(c) @(x) c*x^2;
Note that if you do this, then any one generated function will show c when it is displayed instead of the "captured" value of c, but it does work properly.
Catégories
En savoir plus sur Function Handles dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!