Octave 支持整数矩阵,作为使用双精度浮点数的替代方案。可以使用 8 位、16 位、32 位或 64 位表示的有符号和无符号整数。需要注意的是,大多数计算都需要浮点数据,这意味着整数在进行数值计算时经常会改变类型。因此,整数通常用于存储数据,而不是用于计算。
一般来说,大多数整数矩阵都是通过将现有矩阵转换为整数来创建的。以下示例显示了如何将矩阵转换为 32 位整数。
float = rand (2, 2)
⇒ float = 0.37569 0.92982
0.11962 0.50876
integer = int32 (float)
⇒ integer = 0 1
0 1
可以看到,浮点值在转换时会四舍五入到最近的整数。
tf = isinteger (x) ¶如果 x 是整数对象(int8、uint8、int16 等),则返回 true。
请注意 isinteger (14) 为 false,因为 Octave 中的数字常量是双精度浮点值。
Imax = intmax () ¶Imax = intmax ("type") ¶Imax = intmax (var) ¶返回可以用特定整数类型表示的最大整数。
输入是字符串 "type",指定一个整数类型,或者它是一个现有的整数变量 var。
type 的可能值为
"int8"有符号 8 位整数。
"int16"有符号 16 位整数。
"int32"有符号 32 位整数。
"int64"有符号 64 位整数。
"uint8"无符号 8 位整数。
"uint16"无符号 16 位整数。
"uint32"无符号 32 位整数。
"uint64"无符号 64 位整数。
type 的默认值是 "int32"。
示例代码 - 查询现有变量
x = int8 (1); intmax (x) ⇒ 127
Imin = intmin () ¶Imin = intmin ("type") ¶Imin = intmin (var) ¶返回可以用特定整数类型表示的最小整数。
输入是字符串 "type",指定一个整数类型,或者它是一个现有的整数变量 var。
type 的可能值为
"int8"有符号 8 位整数。
"int16"有符号 16 位整数。
"int32"有符号 32 位整数。
"int64"有符号 64 位整数。
"uint8"无符号 8 位整数。
"uint16"无符号 16 位整数。
"uint32"无符号 32 位整数。
"uint64"无符号 64 位整数。
type 的默认值是 "int32"。
示例代码 - 查询现有变量
x = int8 (1); intmin (x) ⇒ -128
Imax = flintmax () ¶Imax = flintmax ("double") ¶Imax = flintmax ("single") ¶Imax = flintmax (var) ¶返回可以在浮点值中连续表示的最大整数。
输入是字符串,指定浮点类型,或者是现有的浮点变量 var。
默认类型是 "double",但 "single" 是一个有效的选项。在 IEEE 754 兼容系统上,flintmax 对于 "double" 是 2^{53},对于 "single" 是 2^{24}。
示例代码 - 查询现有变量
x = single (1); flintmax (x) ⇒ 16777216
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2