Sai*_*ait 7 c# numeric mathnet-numerics math.net
我有两个向量MathNet.Numerics.LinearAlgebra.Generic.Vector<double>,如下所示:
Vector<double> v1 = new DenseVector(new double[] { 1, 2, 3 });
Vector<double> v2 = new DenseVector(new double[] { 3, 2, 1 });
Run Code Online (Sandbox Code Playgroud)
我基本上想要CrossProduct他们,但找不到官方功能.我知道交叉产品是一个非常简单的功能,我可以自己编写,但我想使用API的功能.
以下两个对我有用:(无法在API中找到此类函数.)
Vector<double> result = v1.CrossProduct(v2);
Vector<double> result = Vector.CrossProduct(v1,v2);
Run Code Online (Sandbox Code Playgroud)
我找到了这个,但是当我尝试编写它时找不到该函数:API Reference
用于进行3元素向量的交叉乘积的样本方法.
using DLA = MathNet.Numerics.LinearAlgebra.Double;
public static DLA.Vector Cross(DLA.Vector left, DLA.Vector right)
{
if ((left.Count != 3 || right.Count != 3))
{
string message = "Vectors must have a length of 3.";
throw new Exception(message);
}
DLA.Vector result = new DLA.DenseVector(3);
result[0] = left[1] * right[2] - left[2] * right[1];
result[1] = -left[0] * right[2] + left[2] * right[0];
result[2] = left[0] * right[1] - left[1] * right[0];
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8419 次 |
| 最近记录: |