主要内容

转换MATLAB编码到状态流流程图

转换您的MATLAB®将代码转换为Stateflow®流程图和图形功能,请使用模式向导。支持的转换模式包括:金宝app

  • 如果,否则,以及其他嵌套的决策语句。

  • 对于循环。

  • 开关声明。

模式向导可以转换MATLAB函数和脚本。

  • 将MATLAB函数转换为状态流图形函数。

  • MATLAB脚本转换为statflow流程图。

仅在独立状态流程图中支持转换MATLAB代码。有关详金宝app细信息,请参阅创建状态流程图以作为MATLAB对象执行.

从创建流程图MATLAB剧本

这个MATLAB脚本经验地验证了Collatz猜想的一个实例。当给定数字输入时U,脚本计算冰雹序列N0=U,N1.,N2.,N3.,⋯通过迭代此规则:

  • 如果N那么是平的吗N我+ 1=N/2.

  • 如果N那就奇怪了N我+ 1= 3N+ 1.

Collatz猜想指出,每个正整数都有一个冰雹序列,最终达到1。

%冰雹序列u,c(u),c(c(u)),。。。y=[u];y(end)~=1y(end+1)=c(y(end));终止disp(y);函数n = c (n)%计算冰雹序列中的下一个数字。%如果n是偶数,那么c(n)=n/2。%如果n是奇数,那么c(n)=3*n+1。如果rem(n,2)==0n=n/2;其他的n=3*n+1;终止终止
该脚本执行一个重复调用辅助函数的循环C直到它的输出值为1。这个函数C由条件语句组成如果-其他的语句,其输出取决于输入的奇偶性。

要将此脚本转换为流程图和图形函数,请执行以下操作:

  1. 打开一个新的独立图表。

    编辑冰雹
  2. 状态图选项卡,选择图案>选择文件.

  3. 在对话框中,选择MATLAB脚本并单击打开. 模式向导将流程图和图形函数添加到状态流程图中。双击图形函数以查看其内容。

  4. 在“符号”窗格中,单击解决未定义的符号. Stateflow编辑器解析UY作为本地数据。

  5. 保存图表。

  6. 要从状态流编辑器执行图表,请在“符号”窗格中输入值U= 9点击. 执行流程图时,Stateflow编辑器通过图表动画突出显示活动的转换。当执行停止时,MATLAB命令窗口显示冰雹序列,从值9开始:

    9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
  7. 点击停止.

您可以复制生成的流程图和图形函数,并将它们粘贴到其他图表中,包括Simulink中的状态流程图金宝app®模型。如果MATLAB代码使用Simulink中的代码生成功能受限,则必须在模拟图表之前修改流程图操作。有关详细信息,请参阅金宝app在状态流图中调用MATLAB外部函数.

笔记

假设您使用函数输入变量数在MATLAB函数中,将其转换为图表中的图形函数。因为函数输入变量数将图表对象计数为图形函数的输入参数之一,即函数输入变量数在图形函数中,等于1加上函数输入变量数在原始MATLAB函数中。有关更多信息,请参见执行独立图表.

相关的话题