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.

questionAnswers(1)

yourAnswerToTheQuestion