Stateflow结构指数和赋值
这个例子展示了如何访问和修改的内容Stateflow®Stateflow结构的结构或数组。Stateflow结构是一种数据类型定义的
对象。您可以使用Stateflow结构不同大小和类型的数据捆绑为一个单独的数据对象。有关更多信息,请参见通过Stateflow访问总线信号结构。金宝appSimulink.Bus
(金宝app模型)
指数子结构和字段
指数Stateflow结构的子结构和字段,使用点符号。一个名称的第一部分确定父结构。后续部分确定孩子们沿着层次路径。孩子们可以单个字段或字段包含其他结构(也称为子结构)。Stateflow结构的字段的名称匹配的元素的名称金宝appSimulink.Bus
定义了对象的结构。当一个字段包含一个向量、矩阵或数组,您可以访问它的元素通过使用索引你的图表符号语言支持的行动。金宝app
例如,在这个模型中包含一个输入结构的图表(在
),一个输出结构(出
)、局部结构(localbus
),和当地的数组结构(subBusArray
)。
表定义了输入结构
在
,输出结构出
和局部结构localbus
通过使用金宝appSimulink.Bus
对象BusObject
。这些结构有四个方面:某人
,一个
,b
,c
。这个领域
某人
是一个子结构的定义金宝appSimulink.Bus
对象subbu
。这个底座有一个字段避署
。图定义了本地数组结构
subBusArray
通过使用金宝appSimulink.Bus
对象subbu
。数组大小4。数组中的每个元素是一个结构和一个字段避署
。
这个列表说明了表达式,结合点符号和数字指标基于结构规范为这个例子:
in.c
——字段c
输入的结构在
深夜(1)
第一个元素的向量场一个
输入的结构在
out.sb
——子结构某人
输出的结构出
out.sb.ele
——字段避署
子结构的out.sb
out.sb.ele (2, 2)
——元素在第二行第二列的字段避署
子结构的out.sb
subBusArray (1)
数组的第一个元素的结构subBusArray
subBusArray (1) .ele
——字段避署
的结构subBusArray (1)
subBusArray (1) .ele (3、4)
——元素在第三行第四列的字段避署
的结构subBusArray (1)
因为图表使用MATLAB作为动作语言,您访问数组的元素在这个例子通过使用从索引由括号分隔开的。图表中使用C作为行动的语言,使用由括号分隔开的从零开始的索引。有关更多信息,请参见Stateflow向量和矩阵的操作。
结构和字段赋值
你可以写任何Stateflow结构以外的范围输入
。你可以给整个结构赋值,子结构,或者单个字段。
分配一个结构到另一个结构,定义两个结构相同的
金宝appSimulink.Bus
对象的基本工作空间。分配一个结构的子结构不同结构(或反过来),定义相同的结构和子结构
金宝appSimulink.Bus
对象。分配一个结构的另一个领域的结构,必须具有相同的类型和大小的字段。您可以定义Stateflow结构不同
金宝appSimulink.Bus
对象。
例如,这个例子中的图表使这些作业:
localbus = sb2abc (in.sb)
——结构localbus
和MATLAB®函数的输出参数sb2abc
从定义是一样的吗金宝appSimulink.Bus
对象BusObject
。函数输入分解为三个部分:一个矢量,3×2矩阵和标量。函数返回这些组件的领域一个
,b
,c
它的输出。关于这个函数的更多信息,请参阅访问总线信号仿金宝app真软件MATLAB函数。subBusArray (1) = in.sb
——结构subBusArray (1)
和子结构in.sb
从定义是一样的吗金宝appSimulink.Bus
对象subbu
。subBusArray (2) = abc2sb(中)
——结构subBusArray (2)
和图形函数的输出参数abc2sb
从定义是一样的吗金宝appSimulink.Bus
对象subbu
。结合了字段的值的函数一个
,b
,c
从它的输入,将他们一个3×3矩阵的类型int8
。它返回这个矩阵的领域避署
它的输出。subBusArray (3) .ele= transpose(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
从定义是一样的吗金宝appSimulink.Bus
对象BusObject
。out.sb= subBusArray(idx)
——子结构out.sb
和结构subBusArray (idx)
从定义是一样的吗金宝appSimulink.Bus
对象subbu
。
运行仿真
当你模拟的例子中,图表使用的值字段某人
输入结构的填充字段一个
,b
,c
输出的结构。的参数idx
选择数组的元素的结构subBusArray
使用子结构某人
的输出。在这个例子中,idx
= 2,所以图表使用的值字段一个
,b
,c
输入的结构填充子结构。
当你使用其他值idx
,子结构out.sb
包含相同的值in.sb
的转置in.sb
或3 x3的幻方。
另请参阅
金宝appSimulink.Bus
(金宝app模型)