how to make an anonymous function with more than 1 statement or equation?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alfandias Saurena
le 17 Fév 2022
Réponse apportée : Walter Roberson
le 17 Fév 2022
for exmple, i have 2 or more equation (a and d), with some variable defined (B and C).
B=2
C=4
a=Bx;
d=Cx^2;
then, i want to solve :
sqrt(a+d)
B=2;
C=4;
f=@(x) (a=B*x) (d=C*x^2) sqrt(a+b);
f(2)
0 commentaires
Réponse acceptée
Stephen23
le 17 Fév 2022
Using anonymous functions:
B=2;
C=4;
Fa = @(x) B.*x;
Fd = @(x) C.*x.^2;
Fh = @(x) sqrt(Fa(x)+Fd(x));
Fh(2)
Using the symbolic toolbox:
syms x
a = B*x;
d = C*x^2;
s = sqrt(a+d)
double(subs(s,2))
Plus de réponses (2)
Walter Roberson
le 17 Fév 2022
To answer your original question as phrased:
I suspect that you could do that with careful use of having the anonymous function invoke evalc() with a character vector that was a command line that used evalin('caller') to retrieve the parameter, and assingin('base') to save the variable, and then a series of assignin('base') and evalin('base') calls.
This would not be recommended even a little, but you did not ask for our recommendations, only for how to do that task using multiple statements inside an anonymous function.
The approaches shown by Stephen are much better. I would have to have a really good reason to use the approach I outlined above, at least for anything other than proving it could be done.
0 commentaires
Voir également
Catégories
En savoir plus sur Calculus dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!