Math.Net 中是否有类似 linspace() 的方法

Ale*_*tta 4 vb.net math.net

Math.Net 中是否有类似 (MatLab/Octave/numpy) 的 linspace() 函数,它接受 3 个参数(最小值、最大值、长度)并创建一个在最小值和最大值之间均匀间隔值的向量/数组?实现起来并不难,但如果已经有一个功能,我更愿意使用它。

Chr*_*egg 5

没有一个与 linspace完全相同,但信号生成器非常接近并创建一个数组:

SignalGenerator.EquidistantInterval(x => x, min, max, len)
Run Code Online (Sandbox Code Playgroud)

我对 VB.net 语法并不陌生,但我猜它与 C# 非常接近。

如果您需要向量:

new DenseVector(SignalGenerator.EquidistantInterval(x => x, min, max, len))
Run Code Online (Sandbox Code Playgroud)

或者您可以使用静态 Create 函数来实现它(实际上您可能需要预先计算步骤):

DenseVector.Create(len, i => min + i*(max-min)/(len - 1.0))
Run Code Online (Sandbox Code Playgroud)

2013年12月14日更新:

从 v3.0.0-alpha7 开始,两个新函数涵盖了这一点:

  • Generate.LinearSpaced(length, a, b)-> MATLABlinspace(a, b, length)
  • Generate.LinearRange(a, [step], b)-> MATLABa:step:b