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