Matlab的global变量-日志分享
http://blog.renren.com/share/317010482/14838700954
作者 :程新勇
这几天在用Matlab做一个仿真,写代码的时候使用了global类型的变量,写完之后仔细读了一下Matlab的Help,将自己的一些总结写出来。
大部分的东西都是从Matlab的Help中得到的,加入了自己的一些理解。
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叫做