Global variables in octave -


i'm using gnu octave, version 3.2.4.

i have 2 functions. first function, f1.m, has global variable. i'm accessing global variable in function, f2.m.

it works fine in following situation:

# file f1.m function testglobal1()     clear all;     global var1 = [];     testglobal2(); endfunction  #file f2.m function testglobal2()     global var1;     isglobal("var1")     var1     var1 = [var1, 10] endfunction 

the result after running f1 follows:

ans = 1
var1 =
var1 = 10

now, if run f1 again, following result:

ans = 1
var1 = 10
var1 =
10 10

upon subsequent running of f1, vector var1 continues grow.

my question is, why isn't variable, var1, getting reinitialized in f1 (line 3) though code session (is it's called?) on , new 1 begins when run f1 again?

the funny thing is, if assign value var1 in f2, instead of appending on vector, new value gets assigned var1. code f2 modifications given below:

function f2()     global var1;     isglobal("var1")     var1     var1 = [var1, 10]     var1 = 20 endfunction 

the output after running f1 below:

ans = 1
var1 =
10 10
var1 =
10 10 10
var1 = 20

on running f1 again, following output seen:

ans = 1
var1 = 20
var1 =
20 10
var1 = 20

i code behave expect if reinitialize var1 empty vector in f2. in case, subsequent running of f1 not make var1 grow shown above.

could explain what's happening? why doesn't re initialization of var1 empty vector in f1 work?


Comments

Popular posts from this blog

javascript - How to get current YouTube IDs via iMacros? -

c# - Maintaining a program folder in program files out of date? -

emulation - Android map show my location didn't work -