Main Content

创建和运行代码节

自 R2021b 开始,本页代替了代码节 (R2021a) 和在实时脚本中运行节 (R2021a) 这两个页面。

MATLAB® 代码文件通常包含许多命令和文本行。您通常一次仅专注于代码中的一个部分,分块操作代码和相关文本。要更轻松地进行文档管理和导航,请将您的文件划分为多个节。然后,您可以在单个节中运行代码,并根据需要在各节之间导航。

File open in the Editor showing two sections. The second section has a blue border around it indicating that it is the selected section.

将文件划分为不同节

要创建一个节,请转至编辑器实时编辑器选项卡,并在部分中,点击分节符按钮。您也可以在要开始新的代码节的行首输入两个百分号 (%%)。新节用蓝色边框突出显示,表示它处于选中状态。如果代码文件中只有一个节,则该节不会突出显示,因为它始终处于选中状态。

在编辑器中,节以两个百分号 (%%) 开头。与 %% 位于同一行中的文本称为节标题。可以选择是否包含节标题,不过,节标题可提高文件的可读性并在您发布代码时显示为标题。

File open in the Editor showing two percent signs on line eight and a blue border above line eight indicating the start of the section

在实时编辑器中,节可以包括代码、文本和输出。当您创建节或修改现有节时,节左侧的条形会显示斜纹竖条。斜纹竖条表示该节是陈旧节。陈旧节是尚未运行的节,或是自上次运行以来修改过的节。

File open in the Live Editor showing a blank code line on line eight and a blue border above line eight indicating the start of the section

删除节

要在编辑器中删除一个分节符,请删除该节开头的两个百分号 (%%)。要在实时编辑器中删除一个分节符,请将光标放在紧邻该分节符后的行的开头,然后按 Backspace 键。您也可以将光标放在紧邻该分节符的上一行的末尾,然后按 Delete 键。

注意

您无法删除由 MATLAB 添加的分节符。有关 MATLAB 何时可能添加分节符的详细信息,请参阅函数中各节的行为循环和条件语句中各节的行为

最小化节侧边

为了最大化编辑器中可用于编辑代码的空间,可以隐藏“运行节”、“运行到此行”和“代码折叠”侧边。这将最小化代码左侧的灰色区域。要隐藏一个或多个侧边,请右键点击代码左侧的灰色区域,并清除显示运行节侧边显示运行到此行侧边和/或显示代码折叠侧边选项。

运行节

您可以通过单独运行每个节或同时运行文件中的所有代码来运行代码文件。要单独运行某个节,该节必须包含它需要的所有值,或这些值必须存在于 MATLAB 工作区中。当运行单个节时,MATLAB 不会保存您的文件,并且该文件不必位于您的搜索路径中。

下表描述运行代码的不同方式。

运算说明
运行文件中的所有代码。

编辑器实时编辑器选项卡的运行部分中,点击 运行

运行所选节中的代码。

编辑器实时编辑器选项卡的部分中,点击 运行节

在实时编辑器中,您也可以点击节左侧的蓝色竖条。

Section in the Live Editor showing a blue bar to the left of the section.

运行所选节中的代码,然后移至下一节。

编辑器实时编辑器选项卡的部分中,选择 运行并前进

运行所选节中的代码,然后运行所选节后的所有代码。

编辑器实时编辑器选项卡的部分中,选择 运行到结束

运行到特定代码行并暂停。

点击该行左侧的 “运行到此行”按钮。如果不能到达所选行,则 MATLAB 会继续运行,直到到达文件末尾或遇到断点。

在编辑器中,“运行到此行”按钮仅对已保存的代码可用。在实时编辑器中,“运行到此行”按钮可用于所有代码,无论它是否已保存。在函数和类中,“运行到此行”按钮仅在暂停计算时可用。

有关详细信息,请参阅调试 MATLAB 代码文件

递增节中的值

您可以逐步递增某节内的数值,在每次更改后重新运行该节。这有助于您微调并试用您的代码。

要使节内的数值递增,请使用实时编辑器中的控件。例如,以下代码计算变量 x 的阶乘。

x = 5;
y = factorial(x)
y =
   120
要在实时脚本中以交互方式更改 x 的值,请用数值滑块替换值 5。默认情况下,当滑块的值更改时,MATLAB 会重新运行当前节。

Code that calculates the factorial of x. The value of x is replaced with a numeric slider with a minimum value of 0, a maximum value of 10, and an actual value of 5.

有关详细信息,请参阅将交互式控件添加到实时脚本

在各节之间导航

您可以在一个文件的各节之间导航,而无需运行这些节内的代码。这种导航有助于在文件中的各节之间快速跳转。例如,您可以通过这种方式在大文件中查找特定代码。

运算说明
移至特定节。

编辑器实时编辑器选项卡上的导航部分中,点击 转至 。然后,在部分中,从可用选项中进行选择。

移至上一节。

编辑器实时编辑器选项卡上的导航部分中,点击 转至 ,然后点击上一节。您也可以使用 Ctrl+向上箭头键盘快捷方式。

移至下一节

编辑器实时编辑器选项卡上的导航部分中,点击 转至 ,然后点击下一节。您也可以使用 Ctrl+向下箭头键盘快捷方式。

函数中各节的行为

在编辑器中,如果您在函数内添加分节符,MATLAB 会同时在函数声明处和函数 end 语句处插入分节符。如果您没有用 end 语句结束函数,MATLAB 会认为该函数的结尾紧位于其下一函数的开头前。

在实时编辑器中,您无法在函数中添加分节符。不支持局部函数内的节。如果您向实时脚本中添加局部函数,MATLAB 会在第一个局部函数的定义之前添加一个分节符,并删除该函数后面的所有分节符。在实时脚本中运行单个节时,您只能运行局部函数定义之前的那些节。

循环和条件语句中各节的行为

在编辑器中,如果您在循环或条件语句(如 if 语句或 for 循环)中添加分节符,则 MATLAB 会同时在包含语句开头和末尾的行处添加分节符(如果这些行尚未包含分节符)。循环或条件语句中的节独立于其余代码中的节,并嵌套在其余代码的节中。嵌套循环或条件语句中的节也会变为嵌套节。

例如,以下代码预分配一个包含 10 个元素的向量,然后计算 9 个值。如果一个计算出的值是偶数,MATLAB 会向其加 1。

x = ones(1,10);
for n = 2:10

    x(n) = 2 * x(n - 1);
    if rem(x(n), 2) == 0
        
        x(n) = x(n) + 1;
    end
end

如果在 for 循环内的第 3 行添加一个分节符,MATLAB 会在第 9 行(即 for 循环的 end 语句)添加一个分节符。如果在 if 语句内的第 6 行添加一个分节符,则 MATLAB 会在第 8 行(即 if 语句的 end 语句)添加一个分节符,产生三层嵌套节。

  • 在嵌套的最外层,一个节跨整个文件。

    File open in the Editor with the selected section spanning the entire file, and section breaks at line three, six, eight, and nine

  • 在嵌套的第二层,一个节存在于 for 循环中。

    File open in the Editor with the selected section spanning from line three to line nine, and section breaks at line six and eight

  • 在嵌套的第三层,一个节存在于 if 语句中。

    File open in the Editor with the selected section spanning from line six to line eight, and section breaks at line three and nine

相关主题