How to create a syms vector
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Steven
      
 el 13 de Mayo de 2020
  
    
    
    
    
    Comentada: Steven
      
 el 13 de Mayo de 2020
            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
0 comentarios
Respuesta aceptada
  Walter Roberson
      
      
 el 13 de Mayo de 2020
        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])
Más respuestas (0)
Ver también
Categorías
				Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

