Global variable in matlab

De openkb
Aller à : Navigation, rechercher

Sommaire

Questions

let us consider following code which declares global variable in matlab function

function[y] = myfun2(x)
global b

a = 3;
y = x.^4.*sqrt(a*x+5)./(x.^2+b);
b = 4;

then following commands

global b;
>> b=1

b =

     1

>> y=myfun2(3)

returns me value

 y =

   30.3074

i have first question there why it is necessary to declare global variable second times?is it not enough to declare it inside function?and also my second question

following command

y=myfun2(3)

y =

   23.3134

does it means that second times it used number 4?how can i determine which b is used first time?i meant 1 or 4?thanks in advance

Answers

@dato datuashvili,

You are confused with global variable.

  Ordinarily, each MATLAB® function has its own local variables, which are separate from those of other functions, and from those of the base workspace. However, if several functions, and possibly the base workspace, all declare a particular name as global, they all share a single copy of that variable. Any assignment to that variable, in any function, is available to all the functions declaring it global.

If the global variable does not exist the first time you issue the global statement, it is initialized to the empty matrix. If a variable with the same name as the global variable already exists in the current workspace, MATLAB issues a warning and changes the value of that variable to match the global.

Have a look on this page, which is also source of my answer.

http://www.mathworks.in/help/matlab/ref/global.html http://www.mathworks.in/help/matlab/ref/global.html

In addition to that,

  You need to declare x as a global variable in every scope (i.e. function/workspace) that you want it to be shared across. So, you need to write test1 as:   
function test1()
  global x;
  x = 5;
end

http://stackoverflow.com/questions/4911926/declaring-a-global-variable-in-matlab http://stackoverflow.com/questions/4911926/declaring-a-global-variable-in-matlab If that does not help you, please notify me.

Source

License : cc by-sa 3.0

http://stackoverflow.com/questions/21508563/global-variable-in-matlab

Related

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils