我需要在matlab中计算2个矩阵之间的欧几里得距离。目前我正在使用 bsxfun 并计算距离如下(我附上了一段代码):
for i=1:4754
test_data=fea_test(i,:);
d=sqrt(sum(bsxfun(@minus, test_data, fea_train).^2, 2));
end
fea_test 的大小是 4754x1024 和 fea_train 是 6800x1024 ,使用他的 for 循环导致 for 的执行需要大约 12 分钟,我认为这太高了。有没有办法更快地计算两个矩阵之间的欧几里得距离?
有人告诉我,通过删除不必要的 for 循环,我可以减少执行时间。我也知道 pdist2 可以帮助减少计算时间,但由于我使用的是 matlab 7 版,所以我没有 pdist2 函数。升级不是一种选择。
任何帮助。
问候,
巴维亚