📜  MATLAB 中的嵌套函数

📅  最后修改于: 2022-05-13 01:55:20.613000             🧑  作者: Mango

MATLAB 中的嵌套函数

任何编程语言中的函数都是一些代码块,只需调用名称即可在需要时重复使用。它减少了大量的人力和重写相同的代码,并使整个代码变大。

声明一个函数:

为了在 MATLAB 中声明一个函数,我们使用下面给出的:

句法:

function [x1,x2,...,xn] = myfunc(k1,k2,...,km)

让我们先了解一下语法。这里, myfunc 是函数的名称。 x1,x2,…,xn 是发送给函数的参数,k1,k2,…,kn 是获得的输出。

示例 1:

Matlab
% MATLAB function of adding two numbers 
function x = multiply(a,b)
    x= a*b;
end


Matlab
% MATLAB function for Nested function
function parentfunc
disp('I am a parent function')
nestedfunc
    function nestedfunc
        disp('I am a nested function')
    end
end


Matlab
% MATLAB Code for share variables from the
% nested function to the main function
function parent
    nestedfunc
    function nestedfunc
        x = 5;
    end
      x = x+1;
    disp(x);
end


Matlab
% MATLAB Code for more than one function
% under the same parent function
function parent
    nestedfunc1
    nestedfunc2
    function nestedfunc1
        fprintf('GFG\n');
    end
    function nestedfunc2 
        fprintf('GeeksforGeeks');
    end
end


Matlab
% MATLAB code for two nested functions,
% under the same parent function
function parent 
    x = 5
    nested1
    nested2
    function nested1
        x = x*2;
    end
    function nested2
        x = x+5;
    end
disp(x)
end


Matlab
% MATLAB Code for handle nested functions with 
% the help of the parent function  
function parentfun
x = 5;
a = nestedfunc;
  
       function b = nestedfunc
        b = x + 1;
        fprintf('GFG\n');
       end 
    disp(a);
end


输出:

嵌套函数:

当您在另一个父函数下声明一个函数时,它被称为嵌套函数。

示例 2:

MATLAB

% MATLAB function for Nested function
function parentfunc
disp('I am a parent function')
nestedfunc
    function nestedfunc
        disp('I am a nested function')
    end
end

输出:

好处:

  • 在嵌套函数中,您也可以使用那些不一定作为用户输入参数传递的变量。
  • 从父函数,您可以控制嵌套函数的工作,即,您可以处理运行嵌套函数所需的数据。

嵌套函数的特点:

您还可以将变量从嵌套函数共享到主函数。

示例 3:

MATLAB

% MATLAB Code for share variables from the
% nested function to the main function
function parent
    nestedfunc
    function nestedfunc
        x = 5;
    end
      x = x+1;
    disp(x);
end

输出:

您可以在同一个父函数下嵌套多个函数。

示例 4:

MATLAB

% MATLAB Code for more than one function
% under the same parent function
function parent
    nestedfunc1
    nestedfunc2
    function nestedfunc1
        fprintf('GFG\n');
    end
    function nestedfunc2 
        fprintf('GeeksforGeeks');
    end
end

输出:

您可以在同一个父函数下的两个嵌套函数之间共享变量。

示例 5:

MATLAB

% MATLAB code for two nested functions,
% under the same parent function
function parent 
    x = 5
    nested1
    nested2
    function nested1
        x = x*2;
    end
    function nested2
        x = x+5;
    end
disp(x)
end

输出:

您还可以使用父函数中的变量在父函数的帮助下处理嵌套函数。

示例 6:

MATLAB

% MATLAB Code for handle nested functions with 
% the help of the parent function  
function parentfun
x = 5;
a = nestedfunc;
  
       function b = nestedfunc
        b = x + 1;
        fprintf('GFG\n');
       end 
    disp(a);
end

输出: