# FindNonzeroElements
查找数组中的非零元素
库: Sysblock / MathOperation
# 描述
FindNonzeroElements 模块找到输入信号的所有非零元素,并返回这些元素的线性索引。如果输入是多维信号,则 FindNonzeroElements 模块还可以返回非零输入元素的下标。在这两种情况下,您都可以显示具有非零输入值的输出端口。
# 示例
参考示例模型
。
参考结果
# 端口
# 输入
u — 输入信号标量 | 向量 | 矩阵 | 多维数组
输入信号,模块将从中查找所有非零元素。
数据类型:double | float | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | boolean | fixdt(1, 16, 0) | fixdt(1, 16, 2^0, 0)
# 输出
y — 非零元素的索引标量 | 一维数组
FindNonzeroElements 模块将非零元素的索引输出为标量或一维数组。您可以在输出数据类型的参数面板中选择输出的数据类型。
数据类型:int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | fixdt(1, 16, 0)
y0 — 非零元素的值标量 | 一维数组
(可选)FindNonzeroElements 模块可以将所有非零元素的值输出为标量或一维数组,该端口的数据类型和输入端口的类型保持一致。
数据类型:double | float | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | boolean | fixdt(1, 16, 0) | fixdt(1, 16, 2^0, 0)
# 参数
索引输出格式 — 非零元素索引的格式线性索引(默认值)| 下标
选择非零输入值的索引的输出格式。
- 选择线性索引将以向量形式提供任何维度信号的元素索引。对于一维(向量)信号,索引对应于向量内非零值的位置。对于具有多个维度的信号,会沿第一个维度将下标转换为索引。
- 选择下标将以下标形式提供二维或更大信号的元素索引。由于该模块显示每个维度的输出端口,因此该选项要求您指定输入维数。
输入维数 — 输入信号的维度数3(默认值)| 标量
将输入信号的维度数指定为 1 到 32 之间的正整数值,该参数的值需要和实际的输入维数保证一致。
索引模式 — 指导从 0 或 1 开始的索引从0开始(默认值)| 从 1 开始
将索引模式指定为从 0 开始或从 1 开始。
显示非零输入值的输出端口 — 为非零值启用输出端口off(默认值)| on
显示或隐藏非零输入值的输出端口。
输出数据类型Inherit: internalRule (默认值) | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | fixdt(1, 16, 0)
指定模块输出信号的数据类型。
# 版本历史记录
- 在 2025b 推出
# 限制信息
- 暂不支持 FindNonzeroElements 模块的输出信号为可变大小信号。