概述
嵌套函数是指在某函数中定义的函数。
嵌套函数的创建
MATLAB允许在M文件的函数体中定义-一个或多个嵌套函数,被嵌套的函数能包含进 任何构成M文件的成分。
MATLAB函数文件一般不需要使用end语句来结束函数。对于嵌套函数,无论是嵌套的 还是被嵌套的,都必须以end语句结束。在一个M文件内,只要定义了嵌套函数,其他非嵌套函数也需要end语句来结束。 嵌套函数有以下3种格式。
1)最基本的嵌套函数结构
function x=A(pl ,p2)
...
function y=B(p3)
...
end
...
end
2)平行嵌套函数结构
function x=A(p1 ,p2)
..
function y=B(p3)
...
end
function z=C( p4)
...
end
...
end
其中,函数A嵌套函数B和函数C,但函数B和函数C是并列关系。
3)多层嵌套函数结构。
function x= A(p1,p2)
...
function y=B(p3)
...
function z=C( p4)
...
end
...
end
...
end
其中,函数A嵌套了函数B,而函数B嵌套了函数C。
嵌套函数的调用
一个嵌套函数可以被以下3种函数进行调用。
1)该嵌套函数的直接上一层函数。
2)在同一母函数下的同一级嵌套函数。
3)任意低级别的函数。
例:
>>function A(x,y) %主函数
B(x,y);
C(y);
function B(x,y) %嵌套在A内
D(x);
C(y);
function D(x) %嵌套在B内
C(x);
end
end
function C(x) %嵌套在A内
E(x);
function E(x) %嵌套在C内
...
end
end
end
函数A包含嵌套函数B和嵌套函数C,函数B和函数C分别嵌套了函数D和函数E。
其调用关系如下。
1)主函数为函数A,可调用函数B和函数C,但不能调用函数D和函数E。
2)函数B和函数C为同一级嵌套函数,函数B可以调用函数C和函数D,但无法调用
函数E,函数C可以调用函数B和函数E,但无法调用函数D。
3)函数D和函数E均可调用函数B和函数C,但函数D和函数E分属于两个函数的嵌
套函数;函数D和函数E虽属于同一级别的函数,但它们的母函数不同,所以无法相互
调用。
嵌套函数中变量的使用范围
函数之间,局部变量是不能共享的。即子函数之间或与主函数之间是不能共享变量的, 每个函数都有自己的工作空间,用于存放其变量。在嵌套函数中,因为函数之间存在嵌套的 关系,所以有些情况下可以共享变量。
共享示例,创建文件test5. m和test6. m。
test5. m代码如下。
>>function test5
x=5;
nestfun;
function y = nestfun
y=x+1;
end
y
end .
test6. m代码如下。
>>function test6
x=5;
z = nestfun;
function y = nestfun
y=x+1;
end
end
在“Command Window"窗口运行如下代码并得到的结果如下。
>>test5
Undefined function or variable 'y '.
Error in test5 (line 7)
>>
>>test6
z=
6
在test5. m文件中运行到第7行时发生错误,这是由于在嵌套函数中尽管计算了y的值并进行了返回,但是这个变量只存储在嵌套丽数的工作空间中,无法被外层的函数所共享。在test6.m文件中将嵌套函数的赋值给了z,最终实现了正确显示。
最后
以上就是完美西牛为你收集整理的MATLAB嵌套函数使用嵌套函数的创建 嵌套函数的调用嵌套函数中变量的使用范围的全部内容,希望文章能够帮你解决MATLAB嵌套函数使用嵌套函数的创建 嵌套函数的调用嵌套函数中变量的使用范围所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复