Удалить цикл for из алгоритма кластеризации в MATLAB
Я пытаюсь улучшить производительность алгоритма кластеризации OPTICS. Реализация, которую я нашел в open source, использует цикл for для каждого образца и может работать часами ...
Я полагаю, что некоторое использование функции repmat () может помочь улучшить ее производительность, когда в системе достаточно оперативной памяти. Вы можете предложить другие способы улучшения реализации.
Вот код:
x - это данные: массив [mxn], где m - размер выборки, а n - размерность объекта, которая в большинстве случаев значительно больше единицы.
[m,n] = size(x);
for i = 1:m
D(i,:) = sum(((repmat(x(i,:),m,1)-x).^2),2).';
end
большое спасибо.