# Maxmin
输出最小或最大输入值
- 库: Sysblock / MathOperation
# 描述
Maxmin 模块输出输入的最小或最大元素。您可以通过设置函数参数来选择模块是否输出最小值或最大值。
Maxmin 模块将忽略类型为 NaN 的任何输入值,除非每个输入值为 NaN。当所有输入值均为 NaN 时,输出为 NaN,要么是标量,要么是每个输出向量元素的值。
# 示例
输出两个值中的最大值。将两个 Constant 模块的值分别设置为 1 和 10,将 Maxmin 模块的函数设置为 max,输入端口为 2。
参考示例模型
。
# 端口
# 输入
u1 — 输入信号标量 | 向量 | 矩阵
提供输入信号,模块根据该输入信号输出最大值或最小值。
- 如果模块只有一个输入端口,则输入必须为标量或向量。模块将输出等于输入向量的最小或最大元素的标量。
- 如果模块有多个输入端口,则所有非标量输入都必须具有相同的维度。模块会扩展任何标量输入,使其与非标量输入具有相同的维度。模块将输出与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。
# 依存关系
要支持矩阵输入,您必须将输入端口数目参数设置为大于 1 的整数。所有的非标量输入信号必须具有相同的维度。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
u2 — 第 N 个输入信号标量 | 向量 | 矩阵
提供输入信号,模块根据该输入信号输出最大值或最小值。
如果模块有多个输入端口,则所有非标量输入都必须具有相同的维度。模块会扩展任何标量输入,使其与非标量输入具有相同的维度。模块将输出与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。
# 依存关系
要提供多个输入信号,请将输入端口数目设置为大于 1 的整数。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
# 输出
y — 输入的最小值或最大值标量 | 向量 | 矩阵
当模块有一个输入时,输出是标量值,该标量等于输入元素的最小值或最大值。当模块有多个输入时,输出是与输入具有相同维度的信号。每个输出元素等于对应输入元素的最小值或最大值。
数据类型: float | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point
# 参数
# 主要
函数 — 指定最小值或最大值max(默认) | min
指定对输入应用 min 函数还是 max 函数。
输入端口个数 — 指定输入端口个数2 (默认) | positive integer
指定模块的输入数目。
输出数据类型 — 指定输出数据类型Inherit: internalRule(默认) | Inherit: backPropagation | Inherit: sameAsFirstInput | double | float | int8 | uint8 | int16 | uint16 | int32 | uint32 | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,1.0,0,0.0)
为输出选择数据类型。该类型可以继承、直接指定或表示为数据类型对象。
对整数溢出进行饱和处理 — 溢出操作的方法off (默认) | on
指定对溢出是进行饱和处理还是绕回处理。
| 操作 | 原理说明 | 对溢出的影响 | 示例 |
|---|---|---|---|
选中此复选框 (on)。 | 您的模型可能有溢出,并且您希望在生成的代码中具有显式饱和保护。 | 将溢出饱和处理为数据类型能够表示的最小值或最大值。 | int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。如果选中此复选框,模块输出将在达到 127 时饱和。类似地,模块输出将在达到最小输出值 -128 时饱和。 |
不选中此复选框 (off)。 | 您需要优化所生成代码的效率。您希望避免过度地指定信号超出范围时的处理方式。有关详细信息。 | 溢出会绕回到由数据类型表示的适当值。 | int8(有符号 8 位整数)数据类型可以表示的最大值为 127。任何大于此最大值的模块运算结果都会导致 8 位整数溢出。清除该复选框时,软件会将导致溢出的值解释为 int8,这可能产生意外结果。例如,以 int8 表示的模块结果 130(二进制 1000 0010)为 -126。 |
如果选中此复选框,饱和将应用于模块中的每个内部操作,而不仅仅应用于输出或结果。通常,代码生成过程可以检测何时不会发生溢出。在这种情况下,代码生成器不会生成饱和代码。
# 版本历史记录
- 在 2024b 之前推出
# 限制信息
不支持部分
- 参数-常设-启用过零检测 — 启用过零检测
- 参数-常设-采样时间 — -1 以外的采样时间值
- 参数-信号属性-要求所有输入具有相同的数据类型 — 输入必须具有相同的数据类型
- 参数-信号属性-输出最小值 — 范围检查的最小输出值
- 参数-信号属性-输出最大值 — 范围检查的最大输出值
- 参数-信号属性-锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖输出数据类型
- 参数-信号属性-整数舍入模式 — 定点运算的舍入模式