MATLAB - 私有函数



在 MATLAB 中,私有函数是组织和模块化代码的重要概念。它们允许您创建仅在其父函数或包含文件夹范围内可访问的函数,从而更轻松地管理和维护您的代码库。

什么是私有函数?

MATLAB 中的私有函数是在其父函数或包含文件夹外部不可见或不可访问的函数。它们用于封装仅与特定函数或一组相关函数相关的代码。这种封装有助于改进代码的组织、可读性和可维护性。

MATLAB 中的私有函数在限制函数的可访问性方面发挥着重要作用。通过将函数归类为私有,您可以通过将其放在标有“private”的子目录中来实现此目的。因此,该函数仅对位于直接高于私有子目录的目录中的函数和脚本可用。

现在让我们了解如何创建和访问私有函数。

创建和访问私有函数

按照以下步骤在私有文件夹内创建私有函数,并在其他公共函数中访问它。

  • 假设您当前的工作文件夹为:/MATLAB Drive。在其中创建一个名为 private 的文件夹。
  • 在 /MATLAB Drive 上的文件夹内,创建一个名为“private”的子文件夹,不要将其添加到 MATLAB 路径中。在“private”文件夹中,创建一个名为“privateFunctionExample.m”的 MATLAB 函数文件,内容如下:
function privateFunctionExample
% PRIVATEFUNCTIONEXAMPLE  An example of a private function.

disp('You found the private function.');

在 matlab 中显示如下:

private function

在“private”文件夹外部,创建一个名为“publicFunctionExample.m”的 MATLAB 函数文件,内容如下:

function publicFunctionExample
privateFunctionExample

在 matlab 中显示如下:

public function exmple

此“publicFunctionExample”函数未指定为私有,可从文件夹结构外部访问。在“publicFunctionExample”函数内部,它调用在“private”文件夹中定义的“privateFunctionExample”函数。

将当前文件夹更改为不在“/MATLAB Drive/private”文件夹内的任何位置,然后调用“publicFunctionExample”函数:

publicFunctionExample

在 matlab 命令窗口中,输出如下:

>> publicFunctionExample

You found the private function.
>> 

运行此代码时,MATLAB 将执行“publicFunctionExample”函数,该函数又调用定义为私有函数的“privateFunctionExample”函数。结果,您将看到输出:You found the private function

您可以使用带私有函数完整路径的 help 命令来访问私有函数“privateFunctionExample”的帮助文档:

help private/privateFunctionExample

在 matlab 命令窗口中执行时,输出为:

>> help private/privateFunctionExample
  privateFunctionExample  An example of a private function.

私有函数和标准函数的区别

让我们列出我们最常用的私有函数和标准函数之间的区别。

私有函数

私有函数只能在其定义的函数或脚本中访问,或者只能从位于同一文件夹(通常是“private”子文件夹)中的其他函数访问。它们在此有限范围内不可见或不可访问。这使得它们适合于封装实现细节或内部辅助函数。

私有函数具有有限的范围,使其适合于封装和隐藏父函数或脚本中的特定实现细节。它们提高了模块化性并保护内部逻辑免受外部干扰。

私有函数旨在用于封装。它们封装并隐藏内部流程的细节,允许您维护干净且组织良好的代码结构。

标准函数

标准函数可在 MATLAB 环境中的任何位置访问,前提是函数的路径在 MATLAB 搜索路径中或函数位于当前文件夹中。这些函数可以从任何脚本、函数或命令窗口调用。

标准函数具有更广泛的范围,可以在 MATLAB 代码库的不同部分使用,这使得它们适合于需要从各种脚本和函数访问的适用范围更广的函数。

标准函数本身并不提供封装,因为它们旨在从代码库的各个部分访问。

广告