Main Content

使用构型向导创建流程图

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

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

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

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

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

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

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

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

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

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

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

创建可重用的流程图

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

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

  • ForWhileDoWhile 循环模式。

  • 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) 的规范。

决策模式

 If

 If-Else

 If-Elseif

 If-Elseif-Else

 If-Elseif-Elseif-Else

 嵌套 If

循环模式

 For 循环

 While 循环

 DoWhile 循环

Switch 模式

 2 个 case

 3 个 case

 4 个 case

另请参阅

相关主题