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