1 变量的作用范围
有的变量可以在整个程序中起作用,有的变量则只能在程序的一定范围内起作用。变量的作用范围被称为作用域。根据作用域的不同,变量可以分为下面两种。
-
局部变量
局部变量的作用范围仅限于它所在的函数,一旦程序运行范围超出了它所在的函数,则变量的值将不再保留。 -
全局变量
全局变量用global关键字进行声明,其作用范围为整个M文件。
如果希望扩展变量的作用范围,可以采用两种方法。一种方法是将该变量作为函数参数进行传递;另一种方法是将该变量声明为全局变量。
2 变量的存活期
变量的存活期代表变量保持其值的能力。在MATLAB中有一种变量类型被称为persistent variable,即固定变量。固定变量类似C、Basic等语言中的静态变量,即可以保持变量的值。固定变量用persistent关键字声明,它具有以下特点:
- 只能用在函数中;
- 其他函数不能获取它们;
- 函数存在时MATLAB不将它们从内存中清除,所以变量能始终保留值;
- 如果清除了函数或编辑了该函数的M文件,则MATLAB会清除用于该函数的所有固定变量。
可以用mlock函数防止M文件从内存中被清除,这样可以防止M文件中的固定变量也从内存中被清除。