我试图使用Eigen计算1000x1000矩阵中每对行之间的欧氏距离。到目前为止我所拥有的是这样的:
for (int i = 0; i < matrix.rows(); ++i){
VectorXd refRow = matrix.row(i);
for (int j = i+1; j < matrix.rows(); ++j){
VectorXd eleRow = matrix.row(j);
euclid_distance = (refRow - eleRow).lpNorm<2>();
...
}
}
我的代码包含其他代码,此处替换为“...”但是为了测试性能,我已将其删除。
现在我不认为这会以光速运行,但它比我预期的要多得多。我在使用C ++ \ Eigen库时做错了什么可能会减慢它的速度? 还有其他首选方法吗?