【发布时间】:2019-05-31 16:26:42
【问题描述】:
我正在将一个算法从 Matlab 转换为 C#。
在某个时刻,matlab 代码中有这个新向量:
F = [D * z + v; m1 + rgb];
D 是 36x36 矩阵,z 和 v 是 36x1 向量,m1 和 rgb 是 3x1 向量。这意味着F 是一个 39x1 向量。
现在,当使用 MathNet 将此代码转换为 C# 时,我发现显然没有 append 函数,而我能想到的最好的就是这段代码:
var F = Vector<float>.Build.Dense(39);
var firstElements = Vector<float>.Build.Dense(36);
var lastElements = Vector<float>.Build.Dense(3);
firstElements = D * z + v;
lastElements = m1 + rgb;
firstElements.CopySubVectorTo(F, 0, 0, firstElements.Count);
lastElements.CopySubVectorTo(F, 0, firstElements.Count, lastElements.Count);
有没有更快的方法来创建F 向量?
【问题讨论】:
-
不过有一个 Add 方法。
-
@TaW 是的,但是,如果我没记错的话,
Add用于对向量元素的值求和(或单个向量元素的标量),而不是添加现有向量的新元素。 -
啊,对,对不起..