单独处理掩码参数或输入信号的元素或子数组
端口与子系统
的为每一个控件的控制块每个子系统块。具体来说,为每一个控件中的块每个子系统独立地处理输入信号或掩码参数的元素。这个子系统内的每个块(具有状态)都为它所处理的每个元素或子数组维护一组单独的状态。当子系统中的块集处理元素或子数组时,子系统将结果连接起来形成输出信号。
您可以使用For Each子系统在更改输入或掩码参数后迭代计算输出。为此,您可以在For Each block对话框中配置输入信号的分区或掩码参数。
在For Each子系统中,您可以为每次迭代指定要分区的输入信号输入分区选项卡中的“For Each”块。在指定要分区的信号时,还必须指定分区维度,分区宽度,分区抵消参数。
可以对a的掩码参数进行分区每个子系统块。对于每次迭代都具有相同结构但参数值不同的系统,分区是有用的。在这种情况下,改变模型为每个参数划分额外的输入信号是很麻烦的。相反,为For Each子系统添加一个掩码参数。有关更多信息,请参见创建一个简单的蒙版.要选择分区的掩码参数,请使用“for Each block”对话框中的“parameter Partition”选项卡。有关更多信息,请参见选择分区参数
属性来定义连接结果的维度连接尺寸在输出连接选项卡。
块为每个子数组堆栈生成的结果沿着连接维数,d1(y设在)。然而,如果你指定d2通过将连接维度设置为2,结果将沿着d2方向(x设在)。因此,如果进程生成行向量,那么连接的结果就是行向量。
在为分区选择输入信号或子系统掩码参数时,您需要指定如何为每次迭代将其分解为元素或子数组。通过为?设置整数值来实现这一点分区维度,分区宽度,分区抵消参数。
举例来说,考虑一个输入信号矩阵A,其形式如下:
标签d1而且d2,分别定义维度1和2。的默认设置1
对于分区尺寸和分区宽度,和0
为分区偏移量,则Simulink垂直于分区尺寸进行切片万博1manbetxd1在宽度等于分区宽度的地方,这是一个元素。
矩阵A分解成这三个行向量。
如果你指定d2作为分区尺寸的输入值2
, 万博1manbetxSimulink切片垂直于d2形成三个列向量。
除了设置分区维度来2
,如果你设置分区宽度来2
和分区抵消来-1
, 万博1manbetxSimulink使用两个重叠的3x2分区进行处理。
的例子分区抵消参数,打开Simulink模型。万博1manbetxslexForEachOverlapExample
在Simulink中,只有信号被认为是一维的。万博1manbetx掩码参数是行向量或列向量,取决于它们的方向。要对行向量进行分区,请将分区维数指定为2(沿着列)。若要对列向量进行分区,请将分区维数指定为1(沿着行)。
下面的模型演示了输入信号的分区为每一个块。这个2 × 3输入数组的每一行都包含三个整数,分别表示(x,y,z)-点的坐标。目标是基于(-20,-10,-5)的新原点来转换这些点,并显示结果。
通过将输入信号和新原点相加的过程放在每个子系统块,您可以通过将输入信号划分为两个行向量对每组坐标进行操作。的默认设置可以完成这样的分区1
对于分区尺寸和分区宽度。的默认连接维度1
,每一组新的坐标堆叠在d1方向,使你的显示为2 × 3的数组。
或者,如果指定的连接维为2
,那么你得到一个单行向量,因为每一组结果堆栈在d2方向。
这个例子展示了如何划分输入信号。学习如何为每一个块和子系统处理带有状态的模型,请参见每个子系统文档。