主要内容

为状态流结构建立索引和赋值

这个示例展示了如何访问和修改statflow®结构或statflow结构数组的内容。状态流结构是您从万博1manbetx仿真软件。公共汽车(万博1manbetx模型)目的。您可以使用StateFlow结构将不同大小和类型的数据捆绑在一起到单个数据对象中。有关更多信息,请参见通过状态流结构访问总线信号

索引子结构和字段

要索引statflow结构的子结构和字段,使用点表示法。名称的第一部分标识父结构。随后的部分沿着分层路径标识子节点。子字段可以是单个字段,也可以是包含其他结构(也称为子结构)的字段。属性的元素的名称与statflow结构的字段的名称匹配万博1manbetx仿真软件。公共汽车对象,该对象定义结构。当字段包含向量、矩阵或数组时,您可以使用图表操作语言支持的索引表示法访问其元素。万博1manbetx

例如,该模型中的图表包含一个输入结构(),输出结构(出去),局部结构(localbus),以及结构的局部数组(子弹阵列).

  • 图表定义了输入结构,输出结构出去,以及地方结构localbus通过使用万博1manbetx仿真软件。公共汽车对象BusObject.这些结构有四个字段:某人一个b, 和c

  • 某人是一个从中定义的子结构万博1manbetx仿真软件。公共汽车对象subbu.这个子结构有一个字段叫做避署

  • 该图表定义了结构的局部数组子弹阵列通过使用万博1manbetx仿真软件。公共汽车对象subbu.数组的大小4.数组中的每个元素都是一个名为一个字段的结构避署

下面的列表演示了基于本示例的结构规范组合点表示法和数字索引的表达式:

  • 在C.- 场地c输入结构

  • In.a(1)-向量场的第一个元素一个输入结构

  • out.sb——子结构某人输出结构出去

  • out.sb.ele- 场地避署下部结构out.sb

  • out.sb.ele (2, 2)-字段第二列第二行中的元素避署下部结构out.sb

  • subBusArray (1)- 结构阵列的第一元素子弹阵列

  • subBusArray (1) .ele- 场地避署的结构subBusArray (1)

  • Subbusarray(1).ele(3,4)-字段第三行第四列中的元素避署的结构subBusArray (1)

由于图表使用MATLAB作为操作语言,因此可以通过使用由括号分隔的基于1的索引来访问本例中的数组元素。在使用C作为操作语言的图表中,使用以括号分隔的从零开始的索引。有关更多信息,请参见万博1manbetx向量和矩阵的支持运算

将值分配给结构和字段

您可以写入任何作用域不是输入.您可以将值分配给整个结构,到子结构或单个字段。

  • 要将一个结构分配给另一个结构,请从同一结构中定义这两个结构万博1manbetx仿真软件。公共汽车基础工作区中的对象。

  • 为了将一个结构分配给另一个结构的子结构(或者反过来),从相同的结构和子结构中定义结构和子结构万博1manbetx仿真软件。公共汽车目的。

  • 要将一个结构的字段分配给另一个结构的字段,字段必须具有相同的类型和大小。您可以从不同的地方定义statflow结构万博1manbetx仿真软件。公共汽车对象。

例如,此示例中的图表使这些分配:

  • localbus = sb2abc (in.sb)——结构localbus和MATLAB®功能的输出参数sb2abc都是从同一个地方定义的吗万博1manbetx仿真软件。公共汽车对象BusObject.该功能将其输入分解为三个组件:矢量,3×2矩阵和标量。该函数将这些组件返回为字段一个b, 和c它的输出。有关此函数的更多信息,请参见在MATLAB万博1manbetx函数中访问Simulink总线信号

  • subBusArray (1) = in.sb——结构subBusArray (1)和子结构in.sb都是从同一个地方定义的吗万博1manbetx仿真软件。公共汽车对象subbu

  • SubbusArray(2)= ABC2SB(IN)——结构截巴阵列(2)以及图形函数的输出参数ABC2SB.都是从同一个地方定义的吗万博1manbetx仿真软件。公共汽车对象subbu.该函数结合了字段的值一个b, 和c从它的输入和重新排列在3×3矩阵中int8.它返回这个矩阵作为字段避署它的输出。

  • Subbusarray(3).ele =转置(in.sb.ele)- 场subBusArray (3) .ele是否与结果的型号和尺寸相同置(in.sb.ele).两者都是3 × 3矩阵int8

  • subBusArray (4) .ele= int8(magic(3))- 场subBusArray (4) .ele是否与结果的型号和尺寸相同INT8(魔术(3)).两者都是3 × 3矩阵int8

  • 出= localbus- 两个都出去localbus都是从同一个地方定义的吗万博1manbetx仿真软件。公共汽车对象BusObject

  • out.sb= subBusArray(idx)- 子结构out.sb和结构subBusArray (idx)都是从同一个地方定义的吗万博1manbetx仿真软件。公共汽车对象subbu

运行仿真

模拟示例时,图表使用字段的值某人的输入结构来填充字段一个b, 和c输出结构。的参数idx选择结构数组的元素子弹阵列用作子结构某人的输出。在这个例子中,idx等于2,因此图表使用字段的值一个bc输入结构填充子结构。

当您使用其他值时idx,子结构out.sb包含与in.sb的转置in.sb或者是一个3×3的魔方广场。

另请参阅

(万博1manbetx模型)

相关话题