Using a meshgrid or vector inside all function

2 Ansichten (letzte 30 Tage)
hossein
hossein am 11 Okt. 2018
Kommentiert: hossein am 11 Okt. 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

Akzeptierte Antwort

Honglei Chen
Honglei Chen am 11 Okt. 2018
You need to put
global a
in your cost function too. See the example in
HTH
  3 Kommentare
Honglei Chen
Honglei Chen am 11 Okt. 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 am 11 Okt. 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!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Linear Programming and Mixed-Integer Linear Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by