Remova o loop for do algoritmo de cluster no MATLAB
Estou tentando melhorar o desempenho do algoritmo de agrupamento OPTICS. A implementação que encontrei no código aberto faz uso de um loop for para cada amostra e pode ser executado por horas ...
Acredito que algum uso da função repmat () possa ajudar a melhorar seu desempenho quando o sistema tiver uma quantidade suficiente de RAM. Você pode sugerir outras maneiras de melhorar a implementação.
Aqui está o código:
x são os dados: uma matriz [mxn] em que m é o tamanho da amostra en é a dimensionalidade do recurso, que na maioria das vezes é significativamente maior que um.
[m,n] = size(x);
for i = 1:m
D(i,:) = sum(((repmat(x(i,:),m,1)-x).^2),2).';
end
Muito Obrigado.