首页 > 解决方案 > 内置函数 diff() 可用于 MathNet 中的向量吗?

问题描述

我是新手MathNet并在C#.Net.

有一个向量:

var X = new DenseVector(new double[] { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150 });

我需要找到 Y = **diff(X)**计算相邻元素之间的差异,X例如:

Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]

是否有内置函数diff()可用MathNet?我在MathNet.Numerics/Differentiate上进行了搜索,但它不可用。

标签: c#.netmath.net

解决方案


你是对的。它似乎不可用。但这里有一个简单的功能来实现这一点。

public MathNet.Numerics.LinearAlgebra.Double.DenseVector 
Diff(MathNet.Numerics.LinearAlgebra.Double.DenseVector X)
{
    var R = new MathNet.Numerics.LinearAlgebra.Double.DenseVector(X.Count - 2);
    for (var i = 0; i <= X.Count - 2; i++)
        R(i) = X(i + 1) - X(i);
    return R;
}

推荐阅读