欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

特征值比对代码/计算相似度代码

程序员文章站 2022-07-15 10:52:44
...
float getMold(const vector<float>& vec)
{
    /** 获取特征向量模长 **/
    int n = vec.size();
    float sum = 0.0;
    for (int i=0;i<n;i++)
    {
        sum +=vec[i] *vec[i];
    }
    return sqrt(sum);
}


float getSimilarity(const vector<float>& left ,const vector<float> & right)
{
    /** 获取特征向量间的距离 **/
    int n = left.size();
    assert(n == right.size());
    float tmp =0.0;
    for (int i=0;i<n;i++)
    {
        tmp += left[i] * right[i];
    }
    return tmp / (getMold(left)*getMold(right));
}