How do I generate symbolic variables that I can put into a fminsearch function?
x = sym('x', [1 2]);
fun1 = 4*x(1)^2+3*x(2)+2
myfun = matlabFunction(fun1,'Vars',x);
[xout,fval,exitflag,output] = fminsearch(myfun,[1 ,2])
I tried the code above, however myfun ends up being a function of two variables x1 and x2
@(x1,x2) x2.*3.0 + x1.^2.*4.0 + 2.0
So I have to rewrite the function by hand because I don't know how to generate a symbolic function that looks like this
x(1) x(2)
So I end up rewriting the function
@(x) x(2).*3.0+x(1).^2.*4.0+2.0
and this works
myfun2 =@(x) x(2).*3.0+x(1).^2.*4.0+2.0
[xout,fval,exitflag,output] = fminsearch(myfun2,[1 ,2])
So How do I generate a symbolic vector of x that can allow me to turn fun1 into myfun2

 채택된 답변

Walter Roberson
Walter Roberson 2020년 5월 13일

0 개 추천

x = sym('x', [1 2]);
fun1 = 4*x(1)^2+3*x(2)+2
myfun = matlabFunction(fun1,'Vars',{x}); %small difference from what you had
[xout,fval,exitflag,output] = fminsearch(myfun,[1 ,2])

댓글 수: 1

Steven
Steven 2020년 5월 13일
Amazing what curly braces will do, Thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

제품

릴리스

R2019a

태그

질문:

2020년 5월 13일

댓글:

2020년 5월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by