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
答案 0 :(得分:1)
Math.Net Numerics提供了各种矩阵方法,包括MatrixMultiply和MatrixNorm,它们可以在double[]
上运行,因此看起来它可以满足您的大部分需求。我看不到点积,但它可能是一个我不知道的不同名称。
答案 1 :(得分:1)
您可以为这些类型创建自己的类,并为它们提供从双数组到双数组的隐式转换,然后创建那些接受您自己类型的参数的实用程序方法,这些参数可以在这些数组上运行,因为存在隐式转换。
但这有点可疑,为什么不在普通类型上工作。