Engee 文档

选择器

从输入向量、矩阵或多维数组中选择给定元素。

类型: Selector

图书馆中的路径:

/Basic/Signal Routing/Selector

说明

选择器 程序块根据指定的索引提取输入矢量、矩阵或多维数组中的选定元素。提取信号的分组方式可以与输入信号不同。

根据 输入维数 参数值的不同,索引参数表也会发生变化。表中的每一行都对应 输入维数 中的一个输入测量值。一个输入信号的测量值不得多于一定数量,指定为 输入维数 。例如,如果 输入维数 等于 ,那么信号将被解释为 -dimensional。例如,如果预期输入是标量(一维),但 输入维数 等于 2,则标量将被视为二维。当配置 选择器 程序块进行多维信号操作时,程序块图标会发生变化。

假设我们有一个数字数组 U,我们想使用某个数值 Idx1 作为索引,选择 U 的一个子数组 Y

假设我们有一个数组 U

U = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我们想从 U 中选择一个大小为 8 的子数组 Y,从索引为 Idx1 的元素开始:

Idx1 = 3
Y = U[Idx1:Idx1+7]

这意味着我们要从 U 中选择索引为 310 的元素。因此,Y 将包含以下值:

Y = [3, 4, 5, 6, 7, 8, 9, 10]

这里的 YU 的子数组,从第三个元素开始,包括其后的 7 个元素。Idx1 定义了第二个维度的初始索引,而 Idx1+7 则定义了第二个维度的最终索引。

选择器 块使用的行为与 Julia 中的 getindex 函数类似(详情请参见Indexing )。

第一个索引的参数在参数组 索引 1 中给出。参数组的数量取决于维数(参数值 输入维数 )。每个索引的参数组都是一样的,区别仅在于程序使用的名称(名称末尾的数字表示索引号)。

端口

输出

# Y — 输出信号
标量"|"向量"|"矩阵"|"多维数组

Details

由输入信号中经过选择和/或重新排序的元素组成的输出信号。

数据类型

Float16、Float32、Float64、Int8、Int16、Int32、Int64、Int128、UInt8、UInt16、UInt32、UInt64、UInt128、Fixed、Bool。

复数支持

输入

# U — 输入信号
标量"|"向量"|"矩阵"|"多维数组

Details

输入信号,从中提取元素作为输出信号。

数据类型

Float16、Float32、Float64、Int8、Int16、Int32、Int64、Int128、UInt8、UInt16、UInt32、UInt64、UInt128、Fixed、Bool。

复数支持

# IdxNind — 端口,用于设置第 N 个索引
标量 | 向量 | 矩阵

Details

指定索引的外部端口,用于选择相应的输出元素。区块内的小数点数值将四舍五入为整数。

端口的名称取决于它所指向的索引以及参数 索引模式 的值。

如果参数 索引模式 设置为 单基`则端口名称中的索引 为 `1,如果值为 零基`则为 `0

依赖关系

要使用外部索引端口,请将相应的索引参数 索引选项 设置为 1索引向量(端口), 起始索引(端口).

数据类型

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, Uint128, Fixed .

复数支持

参数

参数

# 输入维数 — 要处理的尺寸数
Real number

Details

设置要处理的输入信号的维数( )。

最大维数为 32

*例如

输入向量只有一个维度,但你想将其表示为一个二维数组。假设有一个包含三个元素的向量,默认情况下表示为一维,维数为 (3,)

在这种情况下,程序块会根据签名 getindex(U, FirstIndices, SecondIndices),使用带有索引 FirstIndicesSecondIndicesgetindex 函数:

julia> getindex(a, [1,2], :)
2x1 Matrix{Int64}:
1
2

向量 a 包含值 [1, 2, 3]。使用参数为 [1, 2]:getindex 函数,程序块会从向量 a 中选择索引为 12 的一维元素,并使用二维的所有元素(用 : 表示)。结果将是一个大小为 2x1 的矩阵,包含索引为 12 的向量 a 中的元素。

默认值

1

程序使用名称

NumberOfDimensions

可调谐

可计算

# 索引模式 — 索引模式
零基 | 单基

Details

设置索引模式:

  • 单基- 输入向量的第一个元素的索引为 1

    例如:如果输入向量包含`[0 5 10 20 50 100]的值,而你想选择索引为`3`的元素,那么输出的值应该是`10

  • 零基- 输入向量的第一个元素的索引为 0

    示例:如果输入向量包含值`[0 5 10 20 50 100],而您需要选择索引为`3`的元素,则输出应为值`20

Zero-based | One-based

默认值

One-based

程序使用名称

IndexMode

可调谐

可计算

# 输入口尺寸 — 输入信号宽度
Integer

Details

为一维信号设置程序块输入信号宽度。输入 -1 表示继承自控制块。

在处理矢量行(大小为 1 x 的矩阵)和矢量列(大小为 x 1 的矩阵)时,可以将维数(参数 输入维数 的值)设为 1。在这种情况下,应正确设置参数 输入口尺寸 的值。可以使用一个索引从此类数组中选择元素。
默认值

-1

程序使用名称

InputPortWidth

可调谐

可计算

附加选项

C 代码生成: 是