Napisałam funkcję, która licząc odległość każdego wektora z vectorPunktow do kazdego centroidu z vectorCentroidow powinna przyporzadkowac mu odpowiedni numer klastra. Wszystko się kompiluje, tylko wyniki się nie zgadzają. Czy widzi ktoś tutaj jakiś błąd?
std::vector<punkt> przypisywanieDoKlastrow(std::vector<punkt> vectorCentroidow, std::vector<punkt> vectorPunktow, daneWejsciowe przelaczniki)
{
std::vector<punkt> vectorPkt = vectorPunktow;
double odleglosc1 = 0, odleglosc2 = 0;
for (int i = 0; i< vectorPunktow.size(); i++)
{
for (int j = 0; j < vectorCentroidow.size(); j++)
{
for (int k = 0; k < przelaczniki.d; k++)
{
odleglosc2 += (vectorPunktow[i].wspolrzedne[k] - vectorCentroidow[j].wspolrzedne[k])*(vectorPunktow[i].wspolrzedne[k] - vectorCentroidow[j].wspolrzedne[k]);
}
if (odleglosc2 > odleglosc1)
{
vectorPkt[i].nrKlastra = j + 1;
}
odleglosc1 = odleglosc2;
}
}
return vectorPkt;
}