Ich habe einen Vektor von Punkten und ich berechne die Abstände zwischen jedem Punkt (P1P2, P1P3, P1P4, .... P1PN, P2P1, ..., PMPN).
Jetzt möchte ich alle Entfernungen von Punkt 1 zu jedem anderen Punkt summieren, dann alle Entfernungen von Punkt 2 zu jedem anderen Punkt und so weiter (P1P2 + P1P3 + ... + P1PN, P2P1 + P2P2 + ... + P2PN) Setzen Sie diese Abstände in einen Vektor. Ich bin in meiner for-Schleife jetzt fest:Summe der Abstände in einer for-Schleife
Hier ist mein Code:
// Calculate mass centers
vector<Point2f> centroids_1;
// Calculate distances between all mass centers
vector<double> distance_vector;
for (int i = 0, iend = centroids_1.size(); i < iend; i++) {
for (int j = 0, jend = centroids_1.size(); j < jend; j++) {
double distance = norm(centroids_1[i] - centroids_1[j]);
distance_vector.push_back(distance);
// Here I tried many things with for loops and while loops but
// I couldn't find a proper solution
}
}
fügen Sie einfach einen 'std :: vector sum_distance' und innerhalb der Schleife' sum_distance [i] + = distance; '. Btw imho es wäre besser, wenn Sie zeigten, was Sie versucht haben und zu erklären, warum es nicht funktioniert hat, weil es nicht so klar ist, was das Problem hier ist –
user463035818
Ich wusste nur nicht die Syntax mit 'sum_distance [i] + =' und in meinem Ich habe viel mit den Iteratoren i und j versucht, aber es war eindeutig nicht die richtige Lösung. – Grillteller