Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Find Nonzero Elements

查找数组中的非零元素

  • Find Nonzero Elements block

库:
Simulink / Math Operations

描述

Find Nonzero Elements 模块找到输入信号的所有非零元素,并返回这些元素的线性索引。如果输入是多维信号,则 Find Nonzero Elements 模块还可以返回非零输入元素的下标。在这两种情况下,您都可以显示具有非零输入值的输出端口。

Find Nonzero Elements 模块输出一个可变大小信号。任何可变大小信号的采样时间必须是离散的。如果模型尚未使用定步长求解器,则可能需要在“配置参数”对话框中选择定步长求解器。有关详细信息,请参阅比较求解器选择求解器

端口

输入

全部展开

输入信号,模块将从中查找所有非零元素。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

输出

全部展开

Find Nonzero Elements 模块将非零元素的索引输出为一个可变大小信号。您可以使用输出数据类型模块参数控制输出的数据类型。

依存关系

默认情况下,模块从第一个输出端口输出线性索引。当您将索引输出格式更改为下标时,该模块将以下标形式提供二维或更大信号的元素索引。在此模式下,必须指定输入维数,模块将为每个维度创建单独的输出端口。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

(可选)Find 模块可以将所有非零元素的值输出为一个可变大小信号。

依存关系

要启用此端口,请选择显示非零输入值的输出端口

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

参数

全部展开

常设

选择非零输入值的索引的输出格式。

  • 选择线性索引将以向量形式提供任何维度信号的元素索引。对于一维(向量)信号,索引对应于向量内非零值的位置。对于具有多个维度的信号,会沿第一个维度将下标转换为索引。您无需知道输入信号的信号维度。

  • 选择下标将以下标形式提供二维或更大信号的元素索引。由于该模块显示每个维度的输出端口,因此该选项要求您指定输入维数

编程用法

模块参数IndexOutputFormat
类型:字符向量
'Linear indices' | 'Subscripts'
默认值:'Linear indices'

将输入信号的维度数指定为 1 到 32 之间的正整数值。

依存关系

要启用此参数,请将索引输出格式设置为下标

编程用法

模块参数NumberOfInputDimensions
类型:字符向量
值:标量
默认值:'1'

将索引模式指定为从 0 开始从 1 开始

  • 对于从 0 开始索引,索引 0 指定输入向量的第一个元素。索引 1 指定第二个元素,依此类推。

  • 对于从 1 开始索引,索引 1 指定输入向量的第一个元素。索引 2 指定第二个元素,依此类推。

编程用法

模块参数IndexMode
类型:字符向量
值:'Zero-based' | 'One-based'
默认值:'Zero-based'

显示或隐藏非零输入值的输出端口。

  • 清除此复选框 (off) 后,模块会隐藏非零输入值的输出端口。

  • 选中此复选框 (on) 后,模块会显示非零输入值的输出端口。额外的输出端口提供非零输入元素的值。

编程用法

模块参数ShowOutputPortForNonzeroInputValues
类型:字符向量
值:'on' | 'off'
默认值:'off'

指定采样时间间隔。要继承采样时间,请将此参数设置为 -1。有关详细信息,请参阅指定采样时间

依存关系

仅当您将此参数设置为 -1 以外的值时才可见。要了解详细信息,请参阅不建议设置采样时间的模块

编程用法

模块参数:SampleTime
类型:字符串标量或字符向量
默认值:"-1"

数据类型

指定输出数据类型。

数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 the Show data type assistant button。有关详细信息,请参阅使用数据类型助手指定数据类型

编程用法

模块参数OutDataTypeStr
类型:字符向量
'Inherit: Inherit via internal rule' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32'| 'int64' | 'uint64'| 'fixdt(1,16)'| '<data type expression>'
默认值:'Inherit: Inherit via internal rule'

选择要指定的数据类别。

  • 继承 - 数据类型的继承规则。选择 Inherit 将在右侧启用另一个菜单/文本框,您可以在其中选择继承模式。

  • 内置 - 内置数据类型。选择 Built in 将在右侧启用另一个菜单/文本框,您可以在其中选择内置数据类型。

  • 定点 - 定点数据类型。选择定点将启用可用于指定定点数据类型的其他参数。

  • 表达式 - 计算结果为数据类型的表达式。选择 Expression 将在右侧启用另一个菜单/文本框,您可以在其中输入表达式。

有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

要启用此参数,请点击显示数据类型助手按钮。

为此信号选择数据类型覆盖模式。

  • 当您选择 inherit 时,Simulink 从信号的上下文(即:从 Simulink® 中使用该信号的模块、Simulink.Signal 对象或 Stateflow® 图)中继承数据类型覆盖设置。

  • 当您选择 off 时,Simulink 忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。

有关详细信息,请参阅 Simulink 文档中的使用数据类型助手指定数据类型

依存关系

要启用此参数,请将模式设置为内置定点

提示

由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。

指定定点数据是有符号还是无符号。有符号数据可以表示正值和负值,无符号数据只表示正值。

  • 有符号,将定点数据指定为有符号数据。

  • 无符号,将定点数据指定为无符号数据。

有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

要启用此参数,请将模式设置为 Fixed point

指定存储量化整数的字的位大小。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将模式设置为定点

指定定点数据的定标方法,以避免发生溢出情况并最大限度地减少量化错误。选择整数会指定定点数据的二进制小数点位置,并将小数长度设置为 0。有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

要启用此参数,请将模式设置为 Fixed point

模块特性

数据类型

Boolean | double | fixed point | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

版本历史记录

在 R2010a 中推出