C# MathNet 实现两个向量的点积和方向余弦 - 超简单
实现两个向量的点积
在MathNet.Numerics中,你可以使用Vector<double>或Vector<T>(其中T是任何数值类型)来表示向量,并使用DotProduct方法来计算两个向量的点积。
以下是一个示例代码,展示如何计算两个向量的点积:
// 定义两个向量
var vectorA = Vector<double>.Build.Dense(new double[] { 4, 3, 0, 0, 5, 0 });
var vectorB = Vector<double>.Build.Dense(new double[] { 5, 0, 4, 0, 4, 0 });
double LenA = vectorA.L2Norm();
double LenB = vectorB.L2Norm();
var dotProduct = vectorA.DotProduct(vectorB);
double cos_sim = dotProduct / (LenA * LenB);
Console.WriteLine(#34;夹角余弦相识度: {cos_sim}");