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 - 输出

生成起始值到结束值具有固定步长的线性序列或者向量。