2026a
# mcolon
生成从起始值到结束值的线性序列或者向量,支持可选的步长参数。与原生 : 操作符不同,此函数可以避免浮点数引起的误差,确保结果长度始终符合理论预期,与 matlab 的: 操作符结果相同。
函数库: TyMath
# 语法
y = mcolon(x1,x2)
y = mcolon(x1,n,x2)
# 说明
y = mcolon(x1,x2) 在区间 [x1,x2] 范围内生成等间距数字向量(间距为 1)。 示例
y = mcolon(x1,n,x2) 在区间 [x1,x2] 范围内生成等间距为 n 的数字向量。 示例
# 示例
等间距数字向量
创建一个由区间 [-5,5] ,间距为 1 的等距点组成的向量。
using TyMath
y = mcolon(-5,5)
-5:5
包含指定间距的向量
创建一个由区间 [-5,5] ,间距为 1.3 的等距点组成的向量。
using TyMath
y = mcolon(-5,1.3,5)
8-element Vector{Float64}:
-5.0
-3.7
-2.4
-1.0999999999999996
0.1999999999999993
1.4999999999999996
2.8
4.1
避免浮点数引起的误差
比如 0:1:49151 ,应该是 49152 个数字,这个时候如果除以 k ,应该还是 49152 个数,但使用原生 : 操作符,当 k 较大时由浮点数引起的误差会使得结果长度与合理论预期不符,而 mcolon 函数可以很好的避免这一点,与 matlab 保持一致。
using TyMath
k=10
length(0:1/k:49151/k)
49152
using TyMath
k=4.224e11
length(0:1/k:49151/k)
49151
using TyMath
k=4.224e11
length(mcolon(0,1/k,49151/k))
49152
使用 matlab 中 : 操作符的计算结果。
k=4.224e11;
length(0:1/k:49151/k)
49152
# 输入参数
x1 - 输入标量
序列起始值。
x2 - 输入标量
序列结束值。
n - 输入标量
序列步长(默认值 1)。
# 输出参数
y - 输出
生成起始值到结束值具有固定步长的线性序列或者向量。