C# MathNet.Numerics.LinearAlgebra:如何将一个向量快速附加到另一个向量?
我正在将一个算法从Matlab转换为C# 在某一点上,matlab代码中有一个新向量:C# MathNet.Numerics.LinearAlgebra:如何将一个向量快速附加到另一个向量?,c#,matlab,C#,Matlab,我正在将一个算法从Matlab转换为C# 在某一点上,matlab代码中有一个新向量: F = [D * z + v; m1 + rgb]; D是36x36矩阵,z和v是36x1向量,m1和rgb是3x1向量。这意味着F是一个39x1向量 现在,当使用MathNet将这段代码转换为C#时,我发现,显然,没有附加函数,我能得到的最好结果是这段代码: var F=Vector.Build.densite(39); var firstElements=Vector.Build.densite(36)
F = [D * z + v; m1 + rgb];
D
是36x36矩阵,z
和v
是36x1向量,m1
和rgb
是3x1向量。这意味着F
是一个39x1向量
现在,当使用MathNet将这段代码转换为C#时,我发现,显然,没有附加函数,我能得到的最好结果是这段代码:
var F=Vector.Build.densite(39);
var firstElements=Vector.Build.densite(36);
var lastElements=Vector.Build.densite(3);
第一元素=D*z+v;
lastElements=m1+rgb;
CopySubVectorTo(F,0,0,firstElements.Count);
CopySubVectorTo(F,0,firstElements.Count,lastElements.Count);
有没有一种更快的方法来创建
F
向量?不是特别漂亮,但这可以:
F = firstElements.ToColumnMatrix().Stack(lastElements.ToColumnMatrix()).Column(0);
添加一个函数来堆叠2个向量可能是一个很好的功能。虽然有一个添加方法。@TaW是的,但是,如果我没有弄错的话,
add
用于对向量元素的值求和(或对单个向量的元素求标量),而不是向预先存在的向量添加新元素。啊,对了,对不起。。