如何将新元素添加到DenseVector中

如何将新元素添加到DenseVector中,vector,math.net,Vector,Math.net,我需要在现有DenseVector中添加一个新元素(双值)。我找到了一些解决办法,但是,在Math.NET中,正确的方法是什么?目前没有“有意”的方法。矩阵类型确实有InsertRow/InsertColumn方法,并且还需要为向量类型添加一个Insert方法。我刚开了一张新票来追踪它 同时,您可以使用以下例程(我在这里使用): Vector InsertAt(Vector v,int i,T value),其中T:struct,IEquatable,IFormattable { var res

我需要在现有DenseVector中添加一个新元素(双值)。我找到了一些解决办法,但是,在Math.NET中,正确的方法是什么?

目前没有“有意”的方法。矩阵类型确实有InsertRow/InsertColumn方法,并且还需要为向量类型添加一个Insert方法。我刚开了一张新票来追踪它

同时,您可以使用以下例程(我在这里使用):

Vector InsertAt(Vector v,int i,T value),其中T:struct,IEquatable,IFormattable
{
var res=Vector.Build.densite(v.Count+1);
如果(i>0)v.Storage.CopySubVectorTo(res.Storage,0,0,i,true);
if(ii);
var vx=插入(v,5100);
Vector<T> InsertAt<T>(Vector<T> v, int i, T value) where T : struct, IEquatable<T>, IFormattable
{
    var res = Vector<T>.Build.Dense(v.Count+1);
    if (i > 0) v.Storage.CopySubVectorTo(res.Storage, 0, 0, i, true);
    if (i < v.Count) v.Storage.CopySubVectorTo(res.Storage, i, i+1, v.Count-i, true);
    res.At(i, value);
    return res;
}

var v = Vector<double>.Build.Dense(5, i => i);
var vx = InsertAt(v, 5, 100);