Using a meshgrid or vector inside all function

2 vues (au cours des 30 derniers jours)
hossein
hossein le 11 Oct 2018
Commenté : hossein le 11 Oct 2018
Hi
I am trying to run an optimization on a 2 variable f(x,y) function inside a region. This region is defined by a mesh-grid of points. Since this grid of points is not changed in every iteration of the optimization, I like to define this mesh grid before the optimization commands and outside my cost function so that the cost function has only unknown variables as input while inside it I can used the grid variable. I would like to do this:
global a a=[1 2 3] %the grid data here
and then the cost function of the optimization algorithm is like this: function out=costfun(x) out=x(1)*a(1)+x(1)*a(1)+...
but it does not work. every time the function is called, the global a variable is now know to it. I should give this grid to the function as input. what can I do about it? Thanks in advance

Réponse acceptée

Honglei Chen
Honglei Chen le 11 Oct 2018
You need to put
global a
in your cost function too. See the example in
HTH
  3 commentaires
Honglei Chen
Honglei Chen le 11 Oct 2018
I'm trying to illustrate how global should be used in MATLAB. For a function to see the global variable, you need to add the global declaration in the function. It's a declaration, you don't need to redefine it.
hossein
hossein le 11 Oct 2018
Oh. sorry. Now I got what you meant. 1- define the grid before the function as a global var and assign values to it. 2-call the function without the grid as the input. 3-use "global a" command inside the function to declare the previously defined a.
I tested it and it worked. Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Linear Programming and Mixed-Integer Linear Programming 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!

Translated by