使用自定义函数

时间:2015-11-20 15:16:22

标签: c# mathdotnet

使用Mathdotnet.Numerics的Matrix<double>,我愿意为乘法运算的结果矩阵的每个单元格应用自定义聚合函数。

例如,在2x2矩阵上:

enter image description here

我的意思是拥有一个特定f函数(上面的一个,如示例所示,是默认的矩阵/向量乘法)。

Matrix世界中是否存在采用Func<Vector<double>, Vector<double>, double>参数的现有方法?

1 个答案:

答案 0 :(得分:1)

根据您的图表,您似乎正在尝试获取两个向量的点积。

MathDotNet为DotProduct提供了一个功能。它看起来像这样:

Vector<double> v1;
Vector<double> v2;
double result = v1.DotProduct(v2);

它会为所有v1[i]*v2[i]返回i的总和。

请在此处查看documentation

如果你想创建自己的函数来操纵两个向量并返回一个double,那就相当容易了。

double MyNewFunction(Vector v1, Vector v2) 
{
    // your code here, as an example here is the matrix multiplication
    double returnValue;
    if (v1.Count!= v2.Count) 
    {
        // process error
    }
    for (int i = 0; i< v1.Count; i++) 
    {
        returnValue += v1.Item[i] * v2.Item[i];
    }
    return returnValue;
}