在Matlab中声明整个范围的变量

sha*_*r_m 1 matlab

我一直在研究GUI,其中许多函数使用该对象.目前,该对象在gui中的每个子函数中被声明为全局变量.定时器也使用此对象,因此直接引用fun1(myobject)并不总是正常工作.

function fun1
global myobject
...
function fun2
global myobject
...
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种更智能的方法来为GUI m文件的整个范围声明此变量.我试过在函数之外声明它但它没有用.

myobject = 1
function fun1
...
function fun2
...
Run Code Online (Sandbox Code Playgroud)

Ita*_*atz 5

使用嵌套的子函数:

function myGui
a = 5;
f1();
f2();

    function f1 ()
        disp (a)
    end

    function f2 ()
        disp (a)
    end
end
Run Code Online (Sandbox Code Playgroud)