【发布时间】:2013-11-12 15:02:21
【问题描述】:
我为冗长的标题道歉。
请考虑以下代码,它可能会出现在k-means 集群中。
rng(1)
num_samples = 10;
samples = randi(100, num_samples, 3);
cluster_centroids = randi(16,3);
cluster_indices = zeros(num_samples,1);
for index = 1:num_samples
distances = sqrt(sum((samples(index) - cluster_centroids).^2, 2));
cluster = find(distances == min(distances), 1)
cluster_indices(index) = cluster;
end
有没有办法将它向量化并移除 for 循环,以便我们有效地处理所有样本(它们是三个整数的元组)?
【问题讨论】:
-
在矢量化之前,该代码甚至似乎都没有返回合理的输出。
cluster_indices = zeros(num_samples);应该是cluster_indices = zeros(num_samples,1);吗? -
是的,应该。我已经更新了问题。