第2章介绍了变量的命名和数据类型,这里继续介绍变量的有关知识,包括变量的作用范围和存活期等,并分别从空间和时间两个维度讨论变量的有效性。[大谦MATLAB,dqmatlab点com]
变量的作用范围
有的变量可以在整个程序中起作用,有的变量则只能在程序的一定范围内起作用。变量的作用范围被称为作用域。根据作用域的不同,变量可以分为下面两种。
局部变量
每个MATLAB函数都有自己的局部变量。局部变量的作用范围仅限于本函数,一旦程序运行范围超出本函数,则变量的值将不再被保留。
全局变量
全局变量用global关键字进行声明,其作用范围为整个M文件。
如果希望扩展变量的作用范围,则可以采用两种方法。一种方法是将该变量作为函数参数进行传递;另一种方法是将该变量声明为全局变量。
注意:将变量作为函数参数进行传递的方法更保险,因为当声明为全局变量时,可能会在无意中更改该变量的值。此时程序往往可以运行,但结果可能不正确,而且错误较难排查。
变量的存活期
变量的存活期代表变量保持其值的能力。在MATLAB中有一种变量类型被称为persistent variable,即固定变量。固定变量类似C、Basic等语言中的静态变量,即可以保持变量的值。固定变量用persistent关键字声明,它具有以下特点:
只能用在函数中;
其他函数不能获取它们;
函数存在时MATLAB不将它们从内存中清除,所以变量能始终保留值;
如果清除了函数或编辑了该函数的M文件,则MATLAB会清除用于该函数的所有固定变量。
可以用mlock函数防止M文件从内存中被清除,这样可以防止M文件中的固定变量也从内存中被清除。