📜  MATLAB中的函数

📅  最后修改于: 2021-04-16 08:46:02             🧑  作者: Mango

方法也被普遍称为函数。这些方法的主要目的是重用代码。方法是由用户调用时调用并执行的代码块。它包含本地工作空间,并且独立于基本工作空间,而基本工作空间属于命令提示符。让我们看一下方法语法。

与其他编程语言相比,MATLAB语法非常独特。我们可以从一个函数返回一个或多个值。我们还可以在调用函数时传递一个或多个参数/变量。 MATLAB函数必须在单独的文件中定义,并且函数名必须与文件名匹配。还让我们看看根据用户需要定义函数的更多方法。

  • 匿名函数
  • 子功能
  • 嵌套函数
  • 私人职能

现在,让我们深入一个示例并了解如何定义基本函数。

例子:

MATLAB
% A MATLAB program to illustrate
% defining a funtcion
  
function result = adder(x, y, z)
  
% This function adds the 3 input arguments
result = x+y+z;
end


MATLAB
% Printing the sum of two numbers
% using sub functions
  
% Primary Function
function result = adder(x,y)
result = x+y;
  
% Calling Sub function
print(result);
end
  
% Sub function
function print(result)
fprintf('The addition of given two number is %d',result);
end


MATLAB
% A MATLAB program to illustrate nested functions
  
% Primary Function
function result = adder(x,y)
result = x+y;
  
% Nested Function
function print(result)
fprintf('The sum of two numbers added in the nested function %d',result);
end
  
% Calling Nested Function
print(result);
end


MATLAB
% A MATLAB program to illustrate
% private functions
  
% Adder Function
function result = adder(x,y)
result = x+y;
  
% Calling private function
print(result);
end


MATLAB
% A MATLAB program to illustrate
% private functions
  
% private function
function print(result)
fprintf('The sum of two numbers added in the nested function is %d',result);
end


MATLAB
% A MATLAB program to illustrate
% private functions
  
% Subtractor Function
function result = adder(x,y)
result = x-y;
  
% Calling private function
print(result);
end


函数语句之后写的注释行用作帮助文本。将上面的代码另存为adder.m,并通过在命令提示符下调用输出来观察输出。

输出:

调用用户定义的函数

匿名函数

匿名函数是具有一个输出变量的内联函数。它可以包含多个输入和输出参数。用户无法从文件外部访问/调用匿名函数。用户可以在命令提示符下或脚本或函数文件中定义匿名函数。

例子:

输出

在上面的代码块中,定义了一个匿名函数,并在命令提示符本身中对其进行了访问。

子功能

子功能是在主要功能之后定义的函数。除匿名函数外,每个函数必须在文件中定义。子功能在主功能文件中定义,并且这些功能对文件中定义的主函数和子功能以外的任何其他功能不可见。与主要功能不同,不能从命令提示符/其他文件访问子功能。

例子:

的MATLAB

% Printing the sum of two numbers
% using sub functions
  
% Primary Function
function result = adder(x,y)
result = x+y;
  
% Calling Sub function
print(result);
end
  
% Sub function
function print(result)
fprintf('The addition of given two number is %d',result);
end

将以上代码保存为主要函数名称adder.m,并通过在命令提示符下调用输出来观察输出。

输出:

两个数相加

嵌套函数

与子函数不同,嵌套函数是在主函数内部定义的。嵌套函数的作用域在文件内。无法从文件外部访问嵌套函数。主要功能的工作空间可以通过所有正在主要函数的主体内限定的嵌套函数访问。

的MATLAB

% A MATLAB program to illustrate nested functions
  
% Primary Function
function result = adder(x,y)
result = x+y;
  
% Nested Function
function print(result)
fprintf('The sum of two numbers added in the nested function %d',result);
end
  
% Calling Nested Function
print(result);
end

用主文件名adder.m保存以上代码,并通过调用函数观察输出。

输出:

结果

私人职能

名称本身暗示这些功能是私有的,并且仅对有限的功能/文件可见。这些功能文件存储在一个单独的名为private的子文件夹中通常,我们无法访问不在当前路径/文件夹中的文件。但这适用于私有功能。这些功能驻留在子文件夹中,并且可以由父文件夹和私有文件夹本身访问。现在,让我们深入研究一些示例以更好地理解该概念。

例子:

的MATLAB

% A MATLAB program to illustrate
% private functions
  
% Adder Function
function result = adder(x,y)
result = x+y;
  
% Calling private function
print(result);
end

将上述代码另存为adder.m并保存在单独的文件夹中,然后再创建一个名为private的文件夹

的MATLAB

% A MATLAB program to illustrate
% private functions
  
% private function
function print(result)
fprintf('The sum of two numbers added in the nested function is %d',result);
end

将以上代码另存为print.m并将其保存在专用文件夹中。

的MATLAB

% A MATLAB program to illustrate
% private functions
  
% Subtractor Function
function result = adder(x,y)
result = x-y;
  
% Calling private function
print(result);
end

将上面的代码另存为减去器.m ,并将其存储在父文件夹的外部。现在,通过访问以上函数来观察输出。

输出:

从调用函数减法私有函数

在上述情况下,当我们尝试从父文件夹以外的位置访问私有功能时,您会观察到错误。

从调用函数法器私有函数

当我们尝试从存储在父文件夹中的加法器函数访问私有函数时,程序成功编译并给出了输出。在使用私有功能时,必须检查当前文件路径。