Nonscalar arrays of function handles are not allowed; use cell arrays instead.
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Steven Lord
2022-4-9
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 个评论
更多回答(2 个)
David Hill
2022-4-9
Why use symbolic and convert?
fun=@(x)[x(1)+x(2);x(1)*x(2)+5];
x=fsolve(fun,[0,1]);
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

