嵌套函数是指在某函数中定义的函数。

嵌套函数的创建

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嵌套函数使用相关推荐

  1. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数

    MATLAB函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句 ...

  2. matlab if嵌套函数,MATLAB嵌套函数的应用

    嵌套函数在求解积分上限中的应用 例1如下述积分表达式,已知a.e和l,如何求得β0? 本例关于β的积分结果不能解析表达,需要数值积分来做,同时还要求一个非线性方程.代码如下: function sol ...

  3. MATLAB嵌套函数的应用

    嵌套函数在求解积分上限中的应用 例1如下述积分表达式,已知a.e和l,如何求得β0? 本例关于β的积分结果不能解析表达,需要数值积分来做,同时还要求一个非线性方程.代码如下: function sol ...

  4. MATLAB嵌套函数

    嵌套函数的定义 嵌套函数,即nested function,就是嵌套在函数体内部的函数.嵌套函数可以出现在一个函数体内部的任何位置,开始以function声明,结束的时候加上end.需要说明的是包含有 ...

  5. MATLAB嵌套函数练习

    嵌套函数:把一个或多个子函数放在同一个主函数的函数体内部而构成的函数称为嵌套函数,一般形式如下: 1.单层嵌套 %一嵌一 function x = A(p1,p2) ...function y = B ...

  6. Matlab中的嵌套函数

    目录 嵌套函数 什么是嵌套函数? 嵌套函数的要求 在父函数与嵌套函数之间共享变量 使用句柄存储函数参数 嵌套函数的可见性 嵌套函数 什么是嵌套函数? 嵌套函数是完全包含在父函数内的函数.程序文件中的任 ...

  7. Matlab 动态输入变量和嵌套函数、匿名函数

    一.简介 当输入的参数有不确定的时候就需要dynamic  input  variable . nargin==2 % nargin 是输入变量的数量, myfunc_areaCircum_d2(ra ...

  8. matlab 子函数句柄,matlab-函数句柄程序.ppt

    匿名函数可以使用工作空间的变量例如创建函数f(x,y)=x^2+y^3 >> p=2; >> q=3; >> f=@(x,y) x^p+y^q f = @(x,y ...

  9. matlab常用函数与常用指令大全

    matlab常用函数与常用指令大全 matlab常用函数- - 1.特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 i ...

最新文章

  1. C++范围解析运算符::
  2. 一位编程15年的大佬:我的OpenCV开发高手成长之路
  3. 教你怎么在vi和vim上查找字符串
  4. 2019全球AI人才报告发布:AI专家仅3.6万
  5. 国产海量存储系统的新突破
  6. Confluence Cloud的Teams Message Extension
  7. 浙大慕课c语言答案,程序设计入门——C语言
  8. 大数据架构师工作内容有哪些?
  9. loss曲线 pytorch_PyTorch应用:用ResNet进行交通标志分类
  10. AWS AI网络研讨会 - Data Lab案例分享
  11. SCI英语论文长难句攻略
  12. 美国主要经济数据解注释
  13. 高德地图定位,搜索,导航功能
  14. 三坐标检测之测量基准面的选择
  15. iPhone软件开发前需认真考虑问题
  16. 2014华中首届手游创意大赛
  17. html 自动加载activex控件,管理加载项未显示加载控件
  18. 获得除当前元素外的所有其他元素,并对其他元素进行设置
  19. Android多点触控揭秘
  20. 行内元素和块元素的区别

热门文章

  1. 宝塔建站403 Forbidden报错、WordPress网站出现Error establishing a database connection
  2. 【优盘变为空白?文件都跑哪儿去了】
  3. 【日常修机】打印机故障维护
  4. 对于点击listview item的数据传递
  5. 关于HttpWebRequest AddRange 方法的参数
  6. 【AAAI2020】强化学习玩王者荣耀
  7. NPOI操作Excel常用函数
  8. 【Windows】还原软件打开方式为默认
  9. latex表格合并单元格后的内容如何自动换行(非手动)
  10. 陈水冬:励志戎马寄情翰墨