MATLAB函数用法

函数是可以获取输入参数并返回输出参数的M文件。 M文件的名称和函数应相同。函数在其自己的工作空间(也称为本地工作空间)中的变量上执行, 与你在MATLAB命令提示符下访问的工作空间(称为基本工作空间)分开。
函数文件就像FORTRAN中的程序或子例程, PASCAL中的操作, 以及C中的函数。
函数文件以函数定义行开头, 该行具有定义明确的输入和输出记录。没有此行, 文件将开发为脚本文件。
句法

function [output variables] =function_name(input variables);

其中function_name必须与用于写入函数的文件名(不带.m扩展名)相同。例如, 如果函数的名称为projectile, 则必须将其编写并存储在名为projectile.m的文件中。函数定义行看起来略有不同, 具体取决于是否没有输出, 单个输出还是多个输出。
例子
Function Definition LineFile Name function [rho, H, F]=motion(x, y, t); motion.m function [theta] = angleTH(x, y); angleTH.m function theta=THETA(x, y, z); THETA.m function []=circle (r); circle.m function circle (r); circle.m

M文件函数剖析 这个简单的函数介绍了M文件的基本部分。
function f = fact(n)Function definition line % Compute a factorial value.H1 line % FACT(N) returns the factorial of N, Help text % generally indicated by N! % put simply, FACT(N) is PROD(1:N).Comment f = prod(1:n); Function body

下表简要定义了每个M文件部分。函数和脚本都可以具有所有这些元素, 但函数定义行仅适用于函数。
M文件元素 Description
函数定义行(仅函数) 它定义了函数名称, 以及输入和输出参数的数量和顺序。
H1 line 程序的单行摘要定义, 当你在整个目录上请求帮助或使用lookfor时显示。
Help text 程序的更详细定义, 当你请求特定函数的帮助时与H1行一起显示
函数或脚本主体 执行实际评估并将值分配给任何输出参数的程序代码。
Comments 程序主体中描述程序内部工作的文本。
函数定义行
函数定义行通知MATLAB M文件包含函数, 并指定函数的参数调用顺序。事实函数的函数定义行是
MATLAB函数用法

文章图片
函数名称
函数名称以字母开头, 并且包括字母数字字符和下划线, 或者它的长度不得超过最大长度(由函数名lengthmax返回)。因为变量必须具有相同的规则, 所以我们可以使用isvarname函数来分析函数名称是否有效:
isvarname myfun

包含MATLAB函数的文本文件的名称由带有扩展名.m的函数名称组成。例如,
average.m

如果文件名和函数定义行名称不同, 则忽略内部(函数)名称。因此, 如果average.m是定义名为computeAverage的函数的文件, 我们将通过键入以下内容来调用该函数
average

函数参数
如果函数具有多个输出值, 请将输出参数列表括在方括号中。输入参数放在函数名称后的括号内。使用逗号分隔多个输入或输出参数。这是具有三个输入和三个输出的函数名称范围的声明:
functions [x, y, z] = sphere(theta, phi, rho) If there is no outputs, leave output blank function printresults(x) or use empty square brackets: function [] = printresults(x)

H1线
【MATLAB函数用法】H1行是第一条帮助文本行, 是紧随函数定义行之后的注释行。因为它由注释文本组成, 所以H1行以百分号%开头。对于平均函数, H1线是
% AVERAGE Mean of vector elements.

这是用户在MATLAB提示符下键入help function_name时出现的文本的第一行。此外, lookfor函数搜索并仅显示H1行。由于此行提供了有关M文件的基本摘要信息, 因此有必要使其具有尽可能的描述性。
帮助文字
我们可以通过在M文件程序的开头在一个或多个连续的注释行上输入帮助文本来为M文件创建在线帮助。 MATLAB将检查紧随H1线之后, 以%开头的第一组连续行, 以作为该函数的在线帮助文??本。没有%作为最左边的字符的第一行将结束帮助。
平均函数的帮助文本为
% AVERAGE(X), where X is the vector, is the mean of vector items. % Nonvector input results in an error.

当我们在命令提示符下键入help function_name时, MATLAB将显示H1行, 然后显示这些函数的在线帮助文??本。帮助系统将忽略此帮助块之后出现的任何注释行。
函数或脚本主体
函数主体包括执行计算并为输出参数分配值的所有MATLAB代码。函数体中的语句可以包含函数调用, 流控制语句和交互式输入和输出之类的编程方法, 评估, 赋值, 注释和空白行。
例如, 平均函数的主体包括许多简单的编程语句:
[m, n] = size(x); if (~((m == 1) | (n == 1)) | (m == 1 & n == 1)) % Flow control error('Input must be a vector')% Error message displays end y = sum(x)/length(x); % Calculation and assignment

注释
注释行以百分号(%)开头。注释行可以出现在M文件的任何位置, 并且我们可以在代码行的末尾附加注释。例如,
%将所有向量元素相加。
y = sum(x)%使用求和函数。
除了注释行, 我们还可以在M文件中的任何位置插入空白行。空行将被忽略。但是, 空行可以表示M文件帮助文本条目的结尾。

    推荐阅读