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

19 visualizzazioni (ultimi 30 giorni)
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.

Risposte (1)

Rik
Rik il 20 Mag 2020
Modificato: Rik il 20 Mag 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.

Categorie

Scopri di più su Function Creation in Help Center e File Exchange

Prodotti


Release

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by