Entfernen der for-Schleife vom Clustering-Algorithmus in MATLAB

Ich versuche, die Leistung des OPTICS-Clustering-Algorithmus zu verbessern. Die Implementierung, die ich in Open Source gefunden habe, verwendet eine for-Schleife für jedes Beispiel und kann stundenlang ausgeführt werden ...

Ich glaube, dass die Verwendung der repmat () - Funktion die Leistung verbessern kann, wenn das System über genügend RAM verfügt. Gerne können Sie weitere Möglichkeiten zur Verbesserung der Implementierung vorschlagen.

Hier ist der Code:

x sind die Daten: ein [mxn] -Array, in dem m die Stichprobengröße und n die Merkmalsdimensionalität ist, die die meiste Zeit signifikant größer als eins ist.

[m,n] = size(x);

for i = 1:m
    D(i,:) = sum(((repmat(x(i,:),m,1)-x).^2),2).';
end

Danke vielmals

Antworten auf die Frage(2)

Ihre Antwort auf die Frage