我是靠谱客的博主 完美西牛,最近开发中收集的这篇文章主要介绍MATLAB嵌套函数使用嵌套函数的创建 嵌套函数的调用嵌套函数中变量的使用范围,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

嵌套函数的创建

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嵌套函数使用嵌套函数的创建 嵌套函数的调用嵌套函数中变量的使用范围所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部