Matlab 创建包含参数的独立文件
我是Matlab世界的新手,我正试图用这个强大的软件创建我的第一个仿真。我会把我的应用程序的所有参数放在一个唯一的m文件中。我在某个地方读到,我必须将所有变量初始化为全局变量,以便它们可以在任何地方使用,但在那之后,这些变量将自动在位于同一个参数文件文件夹中的所有其他我的m文件中可用,简单地调用它们?如果您想要共享否则会超出函数范围的变量,您可以这样声明一个函数Matlab 创建包含参数的独立文件,matlab,variables,global-variables,Matlab,Variables,Global Variables,我是Matlab世界的新手,我正试图用这个强大的软件创建我的第一个仿真。我会把我的应用程序的所有参数放在一个唯一的m文件中。我在某个地方读到,我必须将所有变量初始化为全局变量,以便它们可以在任何地方使用,但在那之后,这些变量将自动在位于同一个参数文件文件夹中的所有其他我的m文件中可用,简单地调用它们?如果您想要共享否则会超出函数范围的变量,您可以这样声明一个函数 function globalFun global var1 var2 var1 = 5; var2 = 6; 。然后从这样的脚本
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);
通过这种方式,您可以一眼就看到哪些函数正在修改哪些内容。如果您想共享否则会超出函数范围的变量,您可以这样声明函数
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);
通过这种方式,您可以一目了然地看到哪些函数正在修改哪些