Nonscalar arrays of function handles are not allowed; use cell arrays instead.
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
syms o p
fun1=o+p;
fun2=o*p+5;
eq1=matlabFunction(fun1);
eq2=matlabFunction(fun2);
bbb=fsolve(@(o,p) [eq1;eq2],[0,1]);
What am I doing wrong?
0 commentaires
Réponse acceptée
Steven Lord
le 9 Avr 2022
You need to evaluate the function handles in your fsolve call. Alternately you could skip converting the symbolic expressions into function handles and use solve.
syms o p
fun1=o+p;
fun2=o*p+5;
eq1=matlabFunction(fun1);
eq2=matlabFunction(fun2);
bbb=fsolve(@(op) [eq1(op(1), op(2));eq2(op(1), op(2))],[0,1]) % or
bbb2 = solve(eq1, eq2, o, p)
vpa(bbb2.o, 5)
vpa(bbb2.p, 5)
0 commentaires
Plus de réponses (2)
David Hill
le 9 Avr 2022
Why use symbolic and convert?
fun=@(x)[x(1)+x(2);x(1)*x(2)+5];
x=fsolve(fun,[0,1]);
Voir également
Catégories
En savoir plus sur Symbolic Math Toolbox 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!