MATLAB中的函数

MATLAB中的函数

方法 属于命令提示符。让我们看一下方法的语法。

语法:

 function [y  1  , y  2  ,y  3  . . . . , y  n  ] = functionName(arguments) 

. . . . . 

end 

其中,y 1 … … y n是输出变量。

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

  • 匿名函数
  • 子函数
  • 嵌套函数
  • 私有函数

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

示例:

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

写在函数语句后面的注释行可以作为帮助文本。将上述代码保存为adder.m,从命令提示符中调用它,观察输出。

输出:

MATLAB中的函数

调用用户定义的函数

匿名函数

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

语法:

output = @(arguments) expression

参数s:

输出 = 要返回的输出

arguments = 需要传递的输入

表达式 = 一个单一的公式/逻辑要

示例:

MATLAB中的函数

输出

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

子函数

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

语法:

 function output = mainFunction(x) 

. . . . . . 

subFunction(y) 

. . . . . . 

end 

function result = subFunction(y) 

. . . . . . 

end 

示例:

% 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保存上述代码,并通过调用该函数观察输出。

输出:

MATLAB中的函数

结果

私有函数

这个名字本身就表明,这些函数是私有的,只对有限的函数/文件可见。这些函数文件被存储在一个单独的子文件夹中,名为private。一般来说,我们不能访问不在当前路径/文件夹中的文件。但这对私有函数是有效的。这些函数存放在子文件夹中,可以访问父文件夹和私有文件夹本身。现在让我们深入了解一些例子,以便更好地理解这个概念。

示例:

% 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的文件夹。

% 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并保存在私人文件夹中。

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

将上述代码保存为subtractor.m,并将其存放在父文件夹之外。现在让我们观察一下访问上述函数的输出情况。

输出:

MATLAB中的函数

从减法器函数中调用私有函数

在上述案例中,当我们试图从父文件夹以外的位置访问私有函数时,你可以观察到错误。

MATLAB中的函数

从加法器函数中调用私有函数

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程