Problem in using Function with in a function
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am writing a code to join two GUI blocks. In my code i have genereated matrices A, B, C and X based on the input. now i need to optimize A and B so i added an optimize function to it. But in the optimization i need to use X and C which are already generated in the above function. can any one help how i can declare X and C as global functions so that the optimization will take the same value what ever my first function is generating.
0 comentarios
Respuesta aceptada
Titus Edelhofer
el 13 de En. de 2012
Hi,
you don't need to use global variables. You can use anonymous functions to do so. If this is the function to be optimized:
function y = myobjective(AB, C, X)
% AB is the variable to be optimized, e.g.,
A = AB(1:5);
B = AB(6:10);
y = ...; % compute y with AB, C, X ...
Then in your function where you start the optimization:
C = ...; % compute C
X = ...; % compute X
% now build the objective function handle: C and X are "stored"
% in fun, so when called by optimizer, C and X are passed
fun = @(x) myobjective(x, C, X);
% call optimizer
x = fmincon(fun, ...);
Hope this helps,
Titus
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Direct Search 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!