tm: 嵌套函数(Nested Function)以及end

嵌套函数是在另一函数内部定义的函数,和普通的函数主要有以下几点差别:

1、函数必须以end结束。只要某个M文件中使用的嵌套函数,则该文件内所有的函数都必须以end结束——无论该函数是否为嵌套函数。

2、调用规则:
嵌套函数按照以下的规则调用:
(1)外层的嵌套函数的直接内层,例如varScope1可以调nestfun1,而nestfun1可以调用nestfun2,但varScope1不能调nestfun2;
(2)有相同父函数的同层嵌套函数(本例不存在);
(3)内层的函数可以调用任何外层的函数,例如,nestfun2可以调用nestfun1和varScope1。
其他函数调用时,只能调最外面一层的函数(varScope1),而不能调用调nestfun1和nestfun2。

3、变量作用域:
通常,函数的工作区只对其自身可见,其他函数不能访问。但对于嵌套函数而言,处于内层的函数可以访问外层函数的工作区(例如,nestfun2可以访问varScope1的局部变量x),反之则不可以。

摘自——http://zhidao.baidu.com/link?url=2J3VD9MrnSQ6Jj19SHKoAkKj4kzqWiWWvFKQrM6vM3ZY6n5L2Ff4VDsQOPPvADmha9l1hc61VNm-cz299LuDlWpD3B8dd3TLhUph4RhMLui

tm: 关于function的一些事情

函数文件和脚本文件。

一般来说分两种情况:
1。如果首行(不包括注释)不是以function开头的,这种叫做脚本或者命令。
2。如果首行(不包括注释)以function开头,这种叫做函数。

对于脚本,可以直接复制到命令行运行,也可以保存成m文件执行。
而函数必须保存成m文件,然后在脚本里或者其他函数里调用。
所以m文件也就分成脚本文件和函数文件。区别就看开头是否为function这个关键字。

不过需要注意的是脚本文件就必须都是脚本,不能包含函数定义,
或者说不能出现function关键字
前面是脚本后面是function定义的函数,这样的脚本跟函数混合的m文件执行时会出错的。

摘自——http://www.cnblogs.com/bigbigtree/archive/2012/03/29/2423451.html