对数空间

时间:2013-05-10 20:47:24

标签: c# logarithm

有没有人有方法来生成对数间隔数字数组。方法签名将是:

public static List<double> logSpace (double start, double end, double numValues)

这类似于matlab函数'logspace'

1 个答案:

答案 0 :(得分:3)

我不熟悉matlab,但听起来你正在寻找这样的东西:

public IEnumerable<double> logspace(double start, double end, int count)
{
    double d = (double)count, p = end/start;
    return Enumerable.Range(0, count).Select(i => start * Math.Pow(p, i/d));
}

logspace(0.1, 1, 10); // 0.1, 0.13, 0.16, 0.2, 0.25, 0.32, 0.4, 0.5, 0.63, 0.79