本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

向脚本中添加函数

MATLAB® 脚本(包括实时脚本)可以包含用于定义函数的代码。这些函数称为局部函数。局部函数在您要重用脚本中的代码时很有用。通过添加局部函数,可以避免创建和管理单独的函数文件。在尝试不同函数时,局部函数也很有用,可根据需要轻松添加、修改和删除它们。R2016b 或更高版本支持脚本中的函数。

添加局部函数

局部函数仅在定义了这些函数的文件中对脚本代码和文件中的其他局部函数可见。它们对其他文件中的函数不可见,并且不能通过命令行来调用。它们等效于其他编程语言的子例程,有时被称为子函数。

要在脚本中添加局部函数,请首先创建脚本。转至主页选项卡并选择新建 > 脚本。有关创建脚本的详细信息,请参阅创建脚本。您也可以在实时编辑器中创建实时脚本

创建脚本之后,请在脚本中添加并保存代码。例如,添加以下代码并将其保存为名为 mystats.m 的脚本。此代码用于声明一个数组、确定该数组的长度并将两个值均传递给局部函数 mymeanmymedian。局部函数 mymeanmymedian 会计算输入列表的平均值和中位数并返回结果。

注意

在脚本中包含函数需要 MATLAB R2016b 或更高版本。

x = 1:10;
n = length(x);
avg = mymean(x,n);
med = mymedian(x,n);

function a = mymean(v,n)
% MYMEAN Example of a local function.

    a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Another example of a local function.

    w = sort(v);
    if rem(n,2) == 1
        m = w((n + 1)/2);
    else
        m = (w(n/2) + w(n/2 + 1))/2;
    end
end

您可以按照任意顺序添加局部函数,只要它们全部出现在其余的脚本代码之后。每个函数都以其自己的函数定义语句开头,以 end 关键字结尾。定义语句是任何函数的第一个可执行代码行,例如 function a = mymean(v,n)。有关函数定义语句的详细信息(包括如何创建它们),请参阅在文件中创建函数

访问帮助

虽然您不能从命令行或其他文件中的函数调用局部函数,但您可以使用 help 命令访问其帮助。同时指定脚本和局部函数的名称,用 > 字符将它们隔开:

help mystats>mymean      
 mymean Example of a local function.

运行代码

要运行脚本(包括所有局部函数),请点击 运行(对于脚本)或 全部运行(对于实时脚本)按钮,或者在命令行窗口中键入已保存脚本的名称。您也可以通过点击 运行节按钮来运行脚本中的单个节。

当前文件中的局部函数优先于其他文件中的函数。即,当您在程序文件内调用某个函数时,MATLAB 会先检查该函数是否为局部函数,然后再查找其他函数。这样您可以在创建特定函数的备用版本的同时,将原始版本保留在另一文件中。

脚本可在基础工作区中创建变量并进行访问。局部函数与其他函数类似,具有与基础工作区分开的专属工作区。局部函数无法访问其他函数的工作区或基础工作区中的变量,除非您将这些变量作为参数传递。有关详细信息,请参阅基础和函数工作区

在实时脚本中添加和运行节

实时编辑器不支持在局部函数中运行各节。因此,您不能在实时脚本的局部函数中添加分节符。当您在实时脚本中添加局部函数时,MATLAB 会自动在第一个局部函数的定义之前添加一个分节符,并删除该函数后面的所有分节符。但是,您可以在脚本代码中运行各个节,即使它们包含对文件中的某个局部函数的调用也一样。有关分节符和运行实时脚本的详细信息,请参阅在实时脚本中运行节

相关主题