对简单向量和数组进行操作的C#数学库

本文关键字:操作 向量 简单 数组 | 更新日期: 2023-09-27 17:57:52

c#有几个数学库,但它们似乎都定义了自己的向量和矩阵类型,或者对已建立的c#类(如Vector3D或vector)进行操作。

有没有对"简单"向量和矩阵类型进行操作的数学库,如double[]和double[,]

就是"很好拥有"功能的一个例子

double[] v = new double[3];
double[] w = new double[3];
double m[,] = new double[3,3];
double vDOTv = DesiredClass.Dot(v); // v.v
double[] normV = DesiredClass.Normalize(v); // normalize vector
double[] cCROSSw = DesiredClass.Cross(v,w);  // v x w
double vDOTm = DesiredClass.Dot(v,m,i); // v.m[i] - dot product of v with ith row of m

对简单向量和数组进行操作的C#数学库

您可以为这些类型创建自己的类,并为它们提供从双数组到双数组的隐式转换,然后创建那些接受您自己类型的参数的实用程序方法,因为存在隐式转换。

但这有点可疑,为什么不先在普通类型上工作呢。

Math.Net Numerics提供了各种矩阵方法,包括在double[]上工作的MatrixMultiply和MatrixNorm,因此看起来它可以满足您的大部分需求。我看不到这个点积,但它可能使用了一个我不知道的不同名称。