📄 pr_cluster.cpp
字号:
#include "PR_Cluster.h"
#include "math.h"
/*
PR_Cluster::PR_Cluster(PR_unit unit)
{
samples.push_back(unit);
}*/
void PR_Cluster::CalcCenter() //calculation the center of cluster
{
for(int j=0;j<center->unit.size();j++)
{
center->unit[j] = .0;
}
for(int i =0;i<samples.size();i++)
{
for(int j=0;j<center->unit.size();j++)
{
center->unit[j] += samples[i]->unit[j];
}
}
for(int j=0;j<center->unit.size();j++)
{
center->unit[j] /= samples.size();
}
}
void PR_Cluster::CalcAverDis()
{
D = 0;
for(int i =0;i<samples.size();i++)
{
D += distance(samples[i],center);
}
D = D/samples.size();
}
void PR_Cluster::CalcSDVector()
{
for(int j=0;j<delta->unit.size();j++)
{
delta->unit[j] = .0;
}
for(int i =0;i<samples.size();i++)
{
for(int j=0;j<delta->unit.size();j++)
{
delta->unit[j] += (samples[i]->unit[j] - center->unit[j])*(samples[i]->unit[j] - center->unit[j]);
}
}
for(int j=0;j<delta->unit.size();j++)
{
delta->unit[j] = sqrt(delta->unit[j]/samples.size());
}
}
void PR_Cluster::CalcMaxComponent()
{
deltamax = 0;
num_max = 0;
for(int j=0;j<delta->unit.size();j++)
{
if(delta->unit[j] >= deltamax)
{
deltamax = delta->unit[j];
num_max = j;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -