Selector
从输入向量、矩阵或多维数组中选择指定的元素。
类型: Selector
图书馆中的路径:
|
资料描述
座 Selector 根据指定的索引提取输入向量、矩阵或多维数组的选定元素。 提取的信号可以与输入信号不同地分组。
取决于参数值 Number of input dimensions 索引参数表正在更改。 表的每一行对应于 Number of input dimensions . 输入信号必须具有不超过一定数量的维度,指定为 Number of input dimensions . 例如,如果 Number of input dimensions 同样 ,那么信号将被解释为 -测量。 例如,如果在输入处期望标量(一维),但 Number of input dimensions 同样 2,那么标量将被视为二维。 配置块时 Selector 对于具有多维信号的操作,块图标会发生变化。
假设我们有一个数字数组 U,我们要选择一个子数组 Y 从 U 使用一些数值 Idx1 作为索引。
假设我们有一个数组 U:
U = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我们要选择一个子数组 Y 大小 8 从 U 从具有索引的元素开始 Idx1:
Idx1 = 3
Y = U[Idx1:Idx1+7]
这意味着我们从 3 以前 10 从 U. 因此, Y 它将包含以下值:
Y = [3, 4, 5, 6, 7, 8, 9, 10]
这里 Y 是子阵列 U 从第三个元素开始,包括以下内容 7 后的元素。 Idx1 定义第二维的初始索引,以及 Idx1+7 定义第二维的最终索引。
座 Selector 使用与函数类似的行为 getindex,getindex in*Julia*(有关更多信息,请参阅 Indexing).
|
在参数组中 Index 1 给出了第一个索引的参数。 参数组的数量取决于维度的数量(参数值 Number of input dimensions). 每个索引的参数集是相同的,它们仅在用于编程的名称上有所不同(名称末尾的数字表示索引号)。
在索引向量模式下使用索引
如果为参数 Index option 值设置 Index vector (dialog) 或 Index vector (port) 该块的工作原理如下:如果任何轴上的索引被设置为标量,那么输出信号将具有缺少此轴的维度。 例如,输入信号具有大小 (a,b,c),沿轴 1 和 3 所有索引都选自 1 以前 a 和向上 c,并在轴 2 -只是索引 3 标量的形式。 然后输出信号将具有尺寸 (a,c). 如果在轴上 2 将索引指定为数组 — [3],那么输出信号将具有大小 (a,1,c). 也就是说,将索引设置为数组将可配置轴保存在最终维度中,将索引设置为标量将删除可配置轴。
让我们来看看输入信号的设置参数和尺寸的不同变体的示例。:
-
输入是大小的一维向量
(5,),索引作为标量给出1在这种情况下,输出是标量(即大小的信号()).
-
输入是大小的一维向量
(5,),索引设置为数组[1]在这种情况下,输出是大小的一维向量(1,).
-
输入是大小的二维矩阵
[3, 3],两个索引都指定为数组[1, 2]和[2]在这种情况下,输出信号也是尺寸的二维矩阵[2, 1].
-
输入是大小的二维矩阵
[3, 3],一个索引被指定为数组[1, 2],而第二个是标量的形式2在这种情况下,输出信号比输入少一个维度,即(2,).
-
输入是大小的二维矩阵
[3, 3],两个索引都作为标量给出3和2在这种情况下,输出是标量(即大小的信号()).
港口
输出
#
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。 |
| 复数支持 |
是 |
参数
参数
#
Number of input dimensions —
已处理尺寸数
Real number
Details
设置要处理的维度数( )的输入信号。
最大尺寸数 — 32.
例子:
输入向量具有一维,但必须表示为二维数组。 假设有一个包含三个元素的向量,默认情况下,它们表示为一维并且具有维数 (3,).
在这种情况下,块使用函数 getindex,getindex 带索引 第一,第一 和 第二部分 通过签名 getindex(U,FirstIndices,SecondIndices):
julia> getindex(a, [1,2], :)
2x1 Matrix{Int64}:
1
2
向量资料 a 包含值 [1, 2, 3]. 使用函数 getindex,getindex 带参数 [1, 2] 和 :,块从向量中选择元素 a 根据带索引的第一维 1 和 2,并在第二维中使用所有元素(由符号表示 :). 结果将是大小的矩阵 2×1 包含向量的元素 a 带索引 1 和 2.
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
#
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 以从控制单元继承。
使用向量字符串(大小矩阵)时 上 )和向量列(大小的矩阵 上 )可以设置维度数(参数值 Number of input dimensions)等于 1. 在这种情况下,您需要正确设置参数值。 Input port size . 您可以使用单个索引从此类数组中选择元素。
|
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
Index 1
#
Index option —
对输入信号的第一维进行索引的方法
Select all | Index vector (dialog) | Index vector (port) | Starting index (dialog) | Starting index (port) | Starting and ending indices (dialog)
Details
由输入信号的维度决定如何索引信号的元素。
输出维度只能在以下模式下减小 Index vector (dialog) 和 Index vector (port). 当索引设置为数字时会发生这种情况。 在所有其他情况下,将保留可配置维度。
|
块认为输入信号的维数等于参数的值 Number of input dimensions 因此,输出值在大多数情况下(如果维度没有通过模式减少 Index vector (dialog) 和 Index vector (port) 并且索引由标量设置)将具有与参数中的数字相等的维数 Number of input dimensions .
|
索引设置可用:
-
Select all-根据指定的索引选择所有索引 Number of input dimensions 尺寸。 不需要进一步的配置。它可以用符号表示
getindex,getindex. 沿着任何轴的所有元素都使用冒号选择,而不指定开始和结束索引。:(见上面的例子)。 例如:julia> getindex([1, 2, 3, 4], :) 4-element Vector{Int64}: 1 2 3 4 -
Index vector (dialog)-启用参数 Index . 输入元素索引的向量。 不支持可变大小的信号。 根据索引的传递(以标量的形式或向量的形式),它取决于这个维度是保留还是减少,这可能导致维度的不匹配。 它可以用符号表示getindex,getindex. 我们来看两个例子:-
保存维度时,输入索引的向量(即使只有一个索引):
julia> getindex([11 12; 21 22], [1], :) 1x2 Matrix{Int64}: 11 12 #в результате получается 矩阵 размера (1,2) -
当维度减少时,索引作为标量输入。:
julia> getindex([11 12; 21 22], 1, :) 2-element Vector{Int64}; 11 12
-
-
Index vector (port)-添加*IdxN*端口。 因此可以减小输出维度。 -
Starting index (dialog)-包括参数 Index 和 Output size . 在参数中输入要选择的项目范围的初始索引 Index 以及要在参数中选择的项数 Output size . 例如:号作为起始索引输入。
2,并将数字输入为大小4. 因此,索引将在范围内2:5:julia> getindex([1, 2, 3, 4, 5, 6], 2:5) 4-element Vector{Int64}: 2 3 4 5 -
Starting index (port)-启用参数 Output size . 在参数中输入要选择的项目数 Output size . 添加*IdxN*端口。 -
Starting and ending indices (dialog)-启用参数(对话框) Index . 输入两个元素的向量 ],那么选择的索引将是范围内的索引 . 例如:输入两个元素的向量
2和4,这对应于索引将取自范围的事实2:4:julia> getindex([1, 2, 3, 4, 5, 6], 2:4) 3-element Vector{Int64}: 2 3 4
例子:
julia> a = [11 12; 21 22]
2x2 Matrix{Int64]:
11 12
21 22
从数组中选择子数组 a,其中包括具有来自 1 以前 1 (第一行)和带有索引的列 2 以前 2 (第二列)。
结果将是大小的子数组 1×1,包含位于源阵列的第一行和第二列中的单个元素 a. 在这种情况下,此元素等于 12:
julia> getindex(a, 1:1, 2:2)
1x1 Matrix{Int64]:
12
| 值 |
|
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
无 |
#
Index —
元素的索引
Scalar / array of real numbers
Details
如果参数 Index option 等于 Index vector (dialog),输入您感兴趣的每个项目的索引。
如果参数 Index option 等于 Starting index (dialog),输入要选择的项目范围的初始索引。
按所需顺序输入应存在于输出信号中的输入信号的所有元素的索引。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |
#
Output size —
块输出信号的宽度
Scalar / array of real numbers
Details
设置块的输出信号的宽度。
| 默认值 |
|
| 程序使用名称 |
|
| 可调谐 |
无 |
| 可计算 |
是 |