1

我是 Matlab 世界的新手,我正在尝试用这个强大的软件创建我的第一个模拟。我会将我的应用程序的所有参数放入一个唯一的 m 文件中。我在某处读过我必须将所有变量初始化为全局变量,以便它们可以在任何地方使用,但在那之后,这些变量将自动在我位于的所有其他 m 文件中可用在参数文件的同一文件夹中,只需调用它们?

4

1 回答 1

1

如果要共享超出函数范围的变量,可以声明这样的函数

function globalFun
global var1 var2
var1 = 5; 
var2 = 6;

. . . 然后从这样的脚本中调用它。. .

global var1 var2
var1 = 0; 
var2 = 0;
globalFun

您将看到工作区中的值已更新,即使该函数未返回任何输出。

然而,这样做,你打开了调试地狱的潜力!如果您需要在函数之间传递大量变量并且不想编写具有大量参数列表的函数,请考虑使用结构。替换gloabalFun为 。.

function s = structFun(s)    
s.var1 = 5; 
s.var2 = 6;

然后这样称呼它。.

s.var1 = 0; 
s.var2 = 0;
s = structFun(s);

这样,您总是可以一目了然地看到哪些功能正在修改什么。

于 2012-09-13T22:46:41.840 回答