global variable(全局变量)
global variable(全局变量),这个概念基本上在所有的主流编程语言中都有,但是在不同的编程语言中,他们的含义是不一样的。
以C语言为例,其全局变量是指定义(声明)在C文件的所有函数以外的变量,它们的作用域从其定义的地方开始,直到这个文件的结尾,在C语言中,全局变量是以文件为单位的(如果一个变量是全局变量,我们指的是这个变量在这个文件内是全局的,如果不用extern声明,那么在其他文件中,这个变量在那个文件中仍然是不可见的)。其实,C语言中处理全局变量的方式是大部分编程语言的处理方式。
但是Matlab中处理全局变量有一种不同的方式。
Matlab中的workspace,在Matlab中,global声明是针对Workspace的,所以要搞清楚Matlab的global是怎样工作的,那么就要先说说Matlab的workspace。Matlab中的代码可以位于三种不同的地方,第一种是直接在其command line中写的代码,这些代码的输入参数来自于当前Workspace,而输出也进入当前Workspace;第二种代码是写在一个script中的,这些代码的输入输出对一个与当前script同名的workspace起作用;第三种代码写在一个function中,这种代码的输入输出对一个与当前的函数名相同的workspace起作用(nested function除外)。
Matlab中有一个特殊的workspace叫做Base workspace,上面说过,所有的script运行的时候都会有操作一个和其同名的workspace,实际上,所有的script对应的workspace中的内容都和Base works