本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

使用 Pattern Wizard 创建流程图

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

  • 生成常见逻辑和迭代循环模式。

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

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

  • 允许在现有流程图中插入模式。

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

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

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

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

  3. 在 Pattern Wizard 中将流程图保存为自定义模式。请参阅保存自定义流程图模式

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

创建可重用的流程图

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

  • IfIf-ElseIf-Elseif 及其他嵌套决策模式。

  • ForWhileDoWhile 循环模式。

  • Switch 模式:最多包含 4 个 case。

  • Custom 模式:您保存的自定义模式,供以后重用。

  • 您在 MATLAB® .m 文件中定义的模式。

Pattern 对话框提示您输入特定于所选模式的条件和动作。有关流程图模式的详细信息,请参阅Pattern Wizard 生成的符合 MAAB 的模式

例如,要在上三角迭代器模式中创建外部 for 循环,请执行下列步骤:

  1. On the 建模选项卡, select Pattern > For Loop.

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

  3. 点击OK.Pattern Wizard 生成此流程图。

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

在现有流程图中插入逻辑模式

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

例如,要在上三角迭代器模式中添加第二个循环,请执行下列步骤:

  1. 在 Stateflow® Editor 中,从外部 for 循环模式中,选择标记为 {action1} 的垂直转移。

  2. On the 建模选项卡, select Pattern > For Loop.

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

  4. 点击OK.Pattern Wizard 将第二个循环添加到流程图。

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

插入逻辑模式的指导原则

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

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

  • 您只能扩展由 Pattern Wizard 创建的流程图。

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

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

  • 不可以选择自定义模式作为扩展。

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

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

保存自定义流程图模式

使用 Pattern Wizard 集中保存流程图模式,以便轻松检索并在图形函数和图中重用。选择具有要保存的模式的流程图,然后选择 Pattern > Save As Pattern

例如,假设您要保存上三角迭代器模式供以后重用,请执行下列步骤:

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

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

  3. Modeling 选项卡上,选择 Pattern > Save As Pattern

  4. 如果您尚未指定自定义模式文件夹,Pattern Wizard 会提示您选择一个文件夹。选择您创建的文件夹,然后点击 Select Folder

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

注意

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

创建自定义模式文件夹的指导原则

Pattern Wizard 使用一个扁平的文件夹来保存和检索流程图模式。

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

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

更改您的自定义模式文件夹

Pattern Wizard 会记忆您选择的自定义模式文件夹以供将来的会话使用。要选择不同文件夹,请重命名您的现有自定义模式文件夹,并执行以下操作之一:

  • 将新的自定义模式保存到 Pattern Wizard 中。

  • 从 Pattern Wizard 中重用一个现有自定义模式。

Pattern Wizard 会提示您选择一个新文件夹。

重用自定义流程图模式

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

例如,要将上三角迭代器自定义模式添加到图形函数,请执行下列步骤:

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

  2. 输入此函数签名:

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

    Input说明
    u2-D矩阵
    numrow矩阵中的行数
    numcol矩阵中的列数

  3. 在函数内点击右键,然后选择 Group & Subchart > Subchart。该函数显示为不透明的框。

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

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

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

  7. 选择上三角迭代器模式,然后点击 OK。Pattern Wizard 将您的自定义模式添加到图形函数。

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

Pattern Wizard 生成的符合 MAAB 的模式

Pattern Wizard 生成流程图,其几何结构和布局符合 MathWorks 汽车咨询委员会 (MAAB) 的规范。

决策模式

 If

 If-Else

 If-Elseif

 If-Elseif-Else

 If-Elseif-Elseif-Else

 Nested If

循环模式

 For Loop

 While Loop

 DoWhile Loop

Switch 模式

 Two Cases

 Three Cases

 Four Cases

相关主题