使用Mathdotnet.Numerics的Matrix<double>
,我愿意为乘法运算的结果矩阵的每个单元格应用自定义聚合函数。
例如,在2x2矩阵上:
我的意思是拥有一个特定f
函数(上面的一个,如示例所示,是默认的矩阵/向量乘法)。
Matrix世界中是否存在采用Func<Vector<double>, Vector<double>, double>
参数的现有方法?
答案 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;
}