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,从命令提示符中调用它,观察输出。
输出:
调用用户定义的函数
匿名函数
匿名函数是一个内联函数,有一个输出变量。它可以包含多个输入和输出参数。用户不能从文件外访问/调用匿名函数。用户可以在命令提示符中或在脚本或函数文件中定义一个匿名函数。
语法:
output = @(arguments) expression
。
参数s:
输出 = 要返回的输出
arguments = 需要传递的输入
表达式 = 一个单一的公式/逻辑要
示例:
输出
在上面的代码块中,一个匿名函数被定义并在命令提示符本身中访问。
子函数
子函数是定义在主函数之后的函数。每个函数都必须在文件中定义,但匿名函数除外。子函数被定义在主函数文件中,除了在文件中定义的主函数和子函数外,这些函数对其他任何函数都是不可见的。与主函数不同,子函数不能从命令提示符/其他文件中访问。
语法:
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保存上述代码,从命令提示符中调用它,观察输出。
输出:
两个数字相加
嵌套函数
与子函数不同,嵌套函数是在主函数内部定义的。嵌套函数的范围是在文件内。人们不能从文件外访问嵌套函数。主函数的工作区可以被定义在主函数体内的所有嵌套函数访问。
% 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。一般来说,我们不能访问不在当前路径/文件夹中的文件。但这对私有函数是有效的。这些函数存放在子文件夹中,可以访问父文件夹和私有文件夹本身。现在让我们深入了解一些例子,以便更好地理解这个概念。
示例:
% 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,并将其存放在父文件夹之外。现在让我们观察一下访问上述函数的输出情况。
输出:
从减法器函数中调用私有函数
在上述案例中,当我们试图从父文件夹以外的位置访问私有函数时,你可以观察到错误。
从加法器函数中调用私有函数
当我们试图访问存储在父文件夹中的加法器函数的私有函数时,程序编译成功并给出了输出。在处理私有函数时,人们必须检查当前的文件路径。