How can I replace an inline function with a anonymous function?

19 visualizaciones (últimos 30 días)
ElPerroVerde
ElPerroVerde el 20 de Mayo de 2020
Editada: Rik el 20 de Mayo de 2020
Usually when I used to work with inline functions I was able to call the formula from a variable. For example:
a=input('Insert a number: ');
formulaOne=['x.^',num2str(a)];
Example=inline(formulaOne,'x');
disp(feval(Example,10))
And the result was equal to 10^a. This is an example but I have a code that generates different formulas so I want to replace the inline function with an @() function.
Here's what I tried:
a=input('Insert a number: ');
formulaOne=['x.^',num2str(a)];
Example=@(x) formulaOne;
disp(Example(10))
I wanted to get the numerical value of the function but I get the text instead:
x.^2 %this is the result I'm getting.
So can I make it read the formula from formulaOne and evaluate it with an anonymous function instead of getting the formula itself?.
Pd. I don't have the Symbolic Math Toolbox instaled so I can't use syms or matlabFunction to solve it.

Respuestas (1)

Rik
Rik el 20 de Mayo de 2020
Editada: Rik el 20 de Mayo de 2020
a=input('Insert a number: ');
Example=@(x) x.^a;
disp(Example(10))
Alternatively, you can use str2func to create a function handle from a char array.

Categorías

Más información sobre Function Creation en Help Center y File Exchange.

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by