主要内容

使用构型向导创建流程图

R2026b

构型向导是一个实用工具,可生成常见流程图样式,用在图形函数和图中。相比手动创建流程图,构型向导具有以下优势。构型向导:

  • 生成常见逻辑和迭代循环构型。

  • 提升构型间的几何结构和布局的一致性。

  • 便于从一个中心位置存储和重用构型。

  • 允许在现有流程图中插入构型。

构型向导生成流程图,其几何结构和布局符合 MathWorks 咨询委员会 (MAB) 的规范。您可以通过修改条件和动作或插入额外的逻辑构型来自定义流程图。您还可以在构型向导中将流程图保存为自定义构型,以便以后重用。

例如,假设您要使用构型向导创建一个图形函数,用于在二维矩阵的上三角中进行迭代。该函数由两个嵌套的 for 循环组成,其中行索引 i 始终小于或等于列索引 j。通过使用构型向导,您可以:

  1. 为对行索引 i 进行迭代的外部循环创建一个流程图。请参阅创建可重用的流程图。

  2. 插入对列索引 j 进行迭代的内部循环以扩展该流程图。请参阅在现有流程图中插入逻辑构型。

  3. 在构型向导中将流程图保存为自定义构型。请参阅保存自定义流程图构型。

  4. 在一个图形函数中重用该自定义构型。请参阅重用自定义流程图构型。

创建可重用的流程图

要创建流程图,请在建模选项卡上,从构型库中选择一种构型。构型选项包括:

  • If、If-Else、If-Elseif 及其他嵌套决策构型。

  • For、While 和 DoWhile 循环构型。

  • Switch 构型:最多包含 4 个 case。

  • 自定义构型:您保存的自定义构型,供以后重用。

  • 您在 MATLAB® .m 文件中定义的构型。

“构型”对话框提示您输入特定于所选构型的条件和动作。有关流程图构型的详细信息,请参阅构型向导生成的符合 MAB 的构型。

例如,要在上三角迭代器构型中创建外部 for 循环,请执行以下操作:

  1. 在建模选项卡上,选择构型 > For 循环。

  2. 在“构型”对话框中,指定用于对矩阵的第一个维度进行迭代的初始化表达式、循环测试表达式和计数表达式:

    Pattern dialog box.

  3. 点击确定。构型向导生成此流程图。

    Flow chart that models a for loop.

要完成上三角迭代器构型,请在此流程图中沿垂直转移插入第二个 for 循环。

在现有流程图中插入逻辑构型

使用构型向导向现有流程图添加循环或决策逻辑扩展。选择符合条件的垂直转移,并从构型库中选择一种构型。选项包括决策、循环和切换构型。“构型”对话框提示您输入特定于所选构型的条件和动作。

例如,要在上三角迭代器构型中添加第二个循环,请执行以下操作:

  1. 在 Stateflow® 编辑器中,从外部 for 循环构型中,选择标记为 {action1} 的垂直转移。

  2. 在建模选项卡上,选择构型 > For 循环。

  3. 在“构型”对话框中,指定用于对矩阵的第二个维度进行迭代的初始化表达式、循环测试表达式和计数表达式。初始化表达式确保 i 永远不会超过 j。此外,输入一个动作来检索矩阵的上三角中的每个元素。

    Pattern dialog box.

  4. 点击确定。构型向导将第二个循环添加到流程图。

    Flow chart that models two nested for loops.

  5. 保存包含构型的模型。

插入逻辑构型的指导原则

在创建逻辑扩展时,遵循以下指导原则:

  • 一次只能选择一个要扩展的转移。所选转移必须是垂直转移,并且具有一个目标结点。

  • 您只能扩展由构型向导创建的流程图。

  • 包含流程图的 Stateflow 图只能包含结点和转移。图不能包含其他对象,如状态、函数或真值表。

  • 您不能扩展自定义创建或修改过的构型。

  • 不可以选择自定义构型作为扩展。

如果所做的选择不符合插入条件,则当您从构型库中选择一种构型时,会看到一条消息,而不是构型选项。

消息问题
选择垂直转移尚未选择垂直转移。
所选转移必须是垂直转移您选择了一个转移,但该转移不是垂直转移。
请只选择一个垂直转移您选择了多个转移。
编辑器必须只包含转移和联接点图中还有状态、函数或真值表等其他对象。

保存自定义流程图构型

使用构型向导集中保存流程图构型,以便轻松检索并在图形函数和图中重用。选择具有要保存的构型的流程图,然后选择构型 > 另存为构型。

例如,假设您要保存上三角迭代器构型供以后重用,请执行以下操作:

  1. 创建一个用于存储您的自定义构型的文件夹。请参阅创建自定义构型文件夹的指导原则。

  2. 在 Stateflow 编辑器中,选择上三角迭代器流程图。

  3. 在建模选项卡上,选择构型 > 另存为构型。

  4. 如果您尚未指定自定义构型文件夹,构型向导会提示您选择一个文件夹。选择您创建的文件夹,然后点击选择文件夹。

  5. 根据提示,将您的构型命名为 UpperTriangleIterator,然后点击保存。构型向导在自定义构型文件夹中将构型保存为模型文件 UpperTriangleIterator.slx。

注意

您可以通过构型向导来仅重用流程图本身。要重用状态和子图,请创建一个原子子图。有关详细信息,请参阅Create Reusable Subcomponents by Using Atomic Subcharts。

创建自定义构型文件夹的指导原则

构型向导使用一个扁平的文件夹来保存和检索流程图构型。

  • 将所有流程图存储在自定义构型文件夹的顶层。不要创建子文件夹。

  • 确保所有流程图文件都带有 .mdl 或 .slx 扩展名。

更改您的自定义构型文件夹

构型向导会记忆您选择的自定义构型文件夹以供将来的会话使用。要选择不同文件夹,请使用 sfpref 函数。例如,要将自定义构型文件夹设置为 C:\patterns,请输入:

sfpref(PatternWizardCustomDir=fullfile("C:","patterns"));

或者,重命名现有自定义构型文件夹,并执行以下操作之一:

  • 将新的自定义构型保存到构型向导中。

  • 从构型向导中重用一个现有自定义构型。

构型向导会提示您选择一个新文件夹。

重用自定义流程图构型

构型向导将您的流程图作为模型文件存储在自定义构型文件夹中。当您选择构型 > 自定义时,保存在此文件夹中的构型会出现在下拉列表中。您可以将自定义构型直接添加到图或图中的子图化图形函数。

例如,要将上三角迭代器自定义构型添加到图形函数,请执行以下操作:

  1. 从对象选项板中,将一个图形函数添加到图,如定义图形函数中所述。

  2. 输入此函数签名:

    function y = ut_iterator(u, numrow, numcol)
    函数采用三个输入。

    输入描述
    u二维矩阵
    numrow矩阵中的行数
    numcol矩阵中的列数

  3. 在函数内点击右键,然后选择组和子图 > 子图。该函数显示为不透明的框。

    A subcharted graphical function.

  4. 双击子图化的函数将其打开。

  5. 从图形函数中删除默认流程图。

  6. 在建模选项卡上,选择构型 > 自定义。随后会打开一个对话框,其中列出已保存到自定义构型文件夹的所有构型。

    Dialog box that lists saved custom patterns.

  7. 选择上三角迭代器构型,然后点击确定。构型向导将您的自定义构型添加到图形函数。

  8. 在图形函数中,将 action1 替换为适当的动作。该动作对矩阵的每行重复一次。

构型向导生成的符合 MAB 的构型

构型向导生成流程图,其几何结构和布局符合 MathWorks 咨询委员会 (MAB) 的规范。

决策构型

Flow chart that models an if statement.

Flow chart that models an if else statement.

Flow chart that models an if else if statement.

Flow chart that models an if else if else statement.

Flow chart that models an if else if else if else statement.

Flow chart that models a nested if statement.

循环构型

Flow chart that models a for loop.

Flow chart that models a while loop.

Flow chart that models a do while loop.

Switch 构型

Flow chart that models a switch statement with two cases.

Flow chart that models a switch statement with three cases.

Flow chart that models a switch statement with four cases.

另请参阅

主题