encoder.h
来自「模式识别k_means聚类算法。」· C头文件 代码 · 共 64 行
H
64 行
//encoder.
#include "fun.h"
template <class T>
class CEncoder
{
private:
int m_VectorSize;
int m_SeedsSum;
T* m_seeds;
public:
CEncoder()
{
m_VectorSize = 0;
m_SeedsSum = 0;
m_seeds = NULL;
}
~CEncoder()
{
delete [] m_seeds;
}
void init(T* src, int dim, int sum);
int seed_id( T* sample);
};
template <class T>
void CEncoder<T>::init(T* src, int dim, int sum)
{
m_VectorSize = dim;
m_SeedsSum = sum;
if (m_seeds)
{
delete [] m_seeds;
}
m_seeds = new T[ dim * sum];
memcpy((void*)m_seeds, src, dim * sum * sizeof(T));
}
template <class T>
int CEncoder<T>::seed_id (T* sample)
{
double distance , Min_dis;
int id = 0;
Min_dis = dis(m_seeds, sample, m_VectorSize);
for (int i = 1 ;i < m_SeedsSum; i++)
{
distance = dis(&m_seeds[m_VectorSize * i], sample, m_VectorSize);
if (distance < Min_dis)
{
Min_dis = distance;
id = i;
}
}
return id;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?