Selector
从输入向量、矩阵或多维数组中选择给定元素。
类型: Selector
图书馆中的路径:
|
说明
Selector 程序块根据指定的索引提取输入矢量、矩阵或多维数组中的选定元素。提取信号的分组方式可以与输入信号不同。
根据 Number of input dimensions 参数值的不同,索引参数表也会发生变化。表中的每一行都对应 Number of input dimensions 中的一个输入测量值。一个输入信号的测量值不得多于一定数量,指定为 Number of input dimensions 。例如,如果 Number of input dimensions 等于 ,那么信号将被解释为 -dimensional。例如,如果预期输入是标量(一维),但 Number of input dimensions 等于 2
,则标量将被视为二维。当配置 Selector 程序块进行多维信号操作时,程序块图标会发生变化。
假设我们有一个数字数组 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
中选择索引为 3
至 10
的元素。因此,Y
将包含以下值:
Y = [3, 4, 5, 6, 7, 8, 9, 10]
这里的 Y
是 U
的子数组,从第三个元素开始,包括其后的 7
个元素。Idx1
定义了第二个维度的初始索引,而 Idx1+7
则定义了第二个维度的最终索引。
Selector 块使用的行为与 Julia 中的 getindex 函数类似(详情请参见Indexing )。
|
第一个索引的参数在参数组 Index 1 中给出。参数组的数量取决于维数(参数值 Number of input dimensions )。每个索引的参数组都是一样的,区别仅在于程序使用的名称(名称末尾的数字表示索引号)。
端口
输出
#
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
指定索引的外部端口,用于选择相应的输出元素。区块内的小数点数值将四舍五入为整数。
端口的名称取决于它所指向的索引以及参数 Index mode 的值。
如果参数 Index mode 设置为 One-based`则端口名称中的索引 为 `1
,如果值为 Zero-based`则为 `0
。
依赖关系
要使用外部索引端口,请将相应的索引参数 Index option 设置为 1
。 Index vector (port)
, Starting index (port)
.
数据类型 |
|
复数支持 |
无 |
参数
参数
#
Number of input dimensions —
要处理的尺寸数
Real number
Details
设置要处理的输入信号的维数( )。
最大维数为 32
。
*例如
输入向量只有一个维度,但你想将其表示为一个二维数组。假设有一个包含三个元素的向量,默认情况下表示为一维,维数为 (3,)
。
在这种情况下,程序块会根据签名 getindex(U, FirstIndices, SecondIndices)
,使用带有索引 FirstIndices
和 SecondIndices
的 getindex
函数:
julia> getindex(a, [1,2], :)
2x1 Matrix{Int64}:
1
2
向量 a
包含值 [1, 2, 3]
。使用参数为 [1, 2]
和 :
的 getindex
函数,程序块会从向量 a
中选择索引为 1
和 2
的一维元素,并使用二维的所有元素(用 :
表示)。结果将是一个大小为 2x1 的矩阵,包含索引为 1
和 2
的向量 a
中的元素。
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |
#
Index mode —
索引模式
Zero-based
| One-based
Details
设置索引模式:
-
One-based
- 输入向量的第一个元素的索引为1
。例如:如果输入向量包含`[0 5 10 20 50 100]
的值,而你想选择索引为`3`的元素,那么输出的值应该是`10
。 -
Zero-based
- 输入向量的第一个元素的索引为0
。示例:如果输入向量包含值`[0 5 10 20 50 100]
,而您需要选择索引为`3`的元素,则输出应为值`20
。
值 |
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
无 |
#
Input port size —
输入信号宽度
Integer
Details
为一维信号设置程序块输入信号宽度。输入 -1
表示继承自控制块。
在处理矢量行(大小为 1 x 的矩阵)和矢量列(大小为 x 1 的矩阵)时,可以将维数(参数 Number of input dimensions 的值)设为 1 。在这种情况下,应正确设置参数 Input port size 的值。可以使用一个索引从此类数组中选择元素。
|
默认值 |
|
程序使用名称 |
|
可调谐 |
无 |
可计算 |
是 |