创建和运行代码节
自 R2021b 开始,本页代替了代码节 (R2021a) 和在实时脚本中运行节 (R2021a) 这两个页面。
MATLAB® 代码文件通常包含许多命令和文本行。您通常一次仅专注于代码中的一个部分,分块操作代码和相关文本。要更轻松地进行文档管理和导航,请将您的文件划分为多个节。然后,您可以在单个节中运行代码,并根据需要在各节之间导航。
将文件划分为不同节
要创建一个节,请转至编辑器或实时编辑器选项卡,并在节部分中,点击分节符按钮。您也可以在要开始新的代码节的行首输入两个百分号 (%%
)。新节用蓝色边框突出显示,表示它处于选中状态。如果代码文件中只有一个节,则该节不会突出显示,因为它始终处于选中状态。
在编辑器中,节以两个百分号 (%%
) 开头。与 %%
位于同一行中的文本称为节标题。可以选择是否包含节标题,不过,节标题可提高文件的可读性并在您发布代码时显示为标题。
在实时编辑器中,节可以包括代码、文本和输出。当您创建节或修改现有节时,节左侧的条形会显示斜纹竖条。斜纹竖条表示该节是陈旧节。陈旧节是尚未运行的节,或是自上次运行以来修改过的节。
删除节
要在编辑器中删除一个分节符,请删除该节开头的两个百分号 (%%
)。要在实时编辑器中删除一个分节符,请将光标放在紧邻该分节符后的行的开头,然后按 Backspace 键。您也可以将光标放在紧邻该分节符的上一行的末尾,然后按 Delete 键。
注意
您无法删除由 MATLAB 添加的分节符。有关 MATLAB 何时可能添加分节符的详细信息,请参阅函数中各节的行为和循环和条件语句中各节的行为。
最小化节侧边
为了最大化编辑器中可用于编辑代码的空间,可以隐藏“运行节”、“运行到此行”和“代码折叠”侧边。这将最小化代码左侧的灰色区域。要隐藏一个或多个侧边,请右键点击代码左侧的灰色区域,并清除显示运行节侧边、显示运行到此行侧边和/或显示代码折叠侧边选项。
运行节
您可以通过单独运行每个节或同时运行文件中的所有代码来运行代码文件。要单独运行某个节,该节必须包含它需要的所有值,或这些值必须存在于 MATLAB 工作区中。当运行单个节时,MATLAB 不会保存您的文件,并且该文件不必位于您的搜索路径中。
下表描述运行代码的不同方式。
运算 | 说明 |
---|---|
运行文件中的所有代码。 | 在编辑器或实时编辑器选项卡的运行部分中,点击 |
运行所选节中的代码。 | 在编辑器或实时编辑器选项卡的节部分中,点击 在实时编辑器中,您也可以点击节左侧的蓝色竖条。 |
运行所选节中的代码,然后移至下一节。 | 在编辑器或实时编辑器选项卡的节部分中,选择 |
运行所选节中的代码,然后运行所选节后的所有代码。 | 在编辑器或实时编辑器选项卡的节部分中,选择 |
运行到特定代码行并暂停。 | 点击该行左侧的 在编辑器中, 有关详细信息,请参阅调试 MATLAB 代码文件。 |
递增节中的值
您可以逐步递增某节内的数值,在每次更改后重新运行该节。这有助于您微调并试用您的代码。
要使节内的数值递增,请使用实时编辑器中的控件。例如,以下代码计算变量 x 的阶乘。
x = 5; y = factorial(x)
y = 120
5
。默认情况下,当滑块的值更改时,MATLAB 会重新运行当前节。有关详细信息,请参阅将交互式控件添加到实时脚本。
在各节之间导航
您可以在一个文件的各节之间导航,而无需运行这些节内的代码。这种导航有助于在文件中的各节之间快速跳转。例如,您可以通过这种方式在大文件中查找特定代码。
运算 | 说明 |
---|---|
移至特定节。 | 在编辑器或实时编辑器选项卡上的导航部分中,点击 |
移至上一节。 | 在编辑器或实时编辑器选项卡上的导航部分中,点击 |
移至下一节 | 在编辑器或实时编辑器选项卡上的导航部分中,点击 |
函数中各节的行为
在编辑器中,如果您在函数内添加分节符,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 语句)添加一个分节符,产生三层嵌套节。
在嵌套的最外层,一个节跨整个文件。
在嵌套的第二层,一个节存在于
for
循环中。在嵌套的第三层,一个节存在于
if
语句中。