Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

向脚本中添加函数

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

创建包含局部函数的脚本

要创建包含局部函数的脚本或实时脚本,请转至主页选项卡,然后选择新建 > 脚本新建 > 实时脚本。然后,向脚本中添加代码。在文件末尾的脚本代码后,添加所有局部函数。在局部函数之前包含至少一行脚本代码。每个局部函数必须以其自己的函数定义语句开头,以 end 关键字结尾。函数可以按任意顺序显示。

例如,创建名为 mystats.m 的脚本。

edit mystats

在文件中,包括两个局部函数,mymeanmymedian。脚本 mystats 声明一个数组,确定数组的长度,然后使用局部函数 mymeanmymedian 计算数组的平均值和中位数。

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

function a = mymean(v,n)
% MYMEAN Local function that calculates mean of array.

    a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Local function that calculates median of array.

    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

当您在实时脚本中添加局部函数时,MATLAB 会自动在第一个局部函数的定义之前添加一个分节符,并删除该函数后面的所有分节符。这是因为实时脚本不支持局部函数中的单个节。

运行具有局部函数的脚本

要运行包含局部函数的脚本或实时脚本,请在编辑器实时编辑器选项卡中,点击 运行按钮。您还可以在命令行窗口中键入已保存脚本的名称。

要运行单个节,请将光标放在该节内,并使用 运行节按钮(.m 文件需要 R2017b 或更高版本)。在 .mlx 文件中,您只能运行位于局部函数定义之前的节。

局部函数和变量的限制

局部函数仅在定义了这些函数的文件中可见。它们对其他文件中的函数不可见,并且不能从命令行窗口来调用。

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

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

访问有关局部函数的帮助

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

例如:

help mystats>mymean
 mymean Local function that calculates mean of array.

相关主题