Using a meshgrid or vector inside all function

조회 수: 8 (최근 30일)
hossein
hossein 2018년 10월 11일
댓글: hossein 2018년 10월 11일
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

채택된 답변

Honglei Chen
Honglei Chen 2018년 10월 11일
You need to put
global a
in your cost function too. See the example in
HTH
  댓글 수: 3
Honglei Chen
Honglei Chen 2018년 10월 11일
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 2018년 10월 11일
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!

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Problem-Based Optimization Setup에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by