成对L2距离计算的优化

火天空

我需要帮助优化此循环。matrix_1为(n×2)的INT矩阵和matrix_2为(m×2), mn很。

index_j = 1;
for index_k = 1:size(Matrix_1,1)
    for index_l = 1:size(Matrix_2,1)
        M2_Index_Dist(index_j,:) = [index_l, sqrt(bsxfun(@plus,sum(Matrix_1(index_k,:).^2,2),sum(Matrix_2(index_l,:).^2,2)')-2*(Matrix_1(index_k,:)*Matrix_2(index_l,:)'))];
        index_j = index_j + 1;
    end
 end

我需要M2_Index_Dist提供一个((n*m)x 2)矩阵,matrix_2其中第一列的索引为,第二列的距离为。

输出示例:

M2_Index_Dist = [ 1, 5.465
                  2, 56.52
                  3, 6.21
                  1, 35.3
                  2, 56.52
                  3, 0
                  1, 43.5
                  2, 9.3
                  3, 236.1
                  1, 8.2
                  2, 56.52
                  3, 5.582]
查普

以下是适用bsxfun于您的公式(||A-B|| = sqrt(||A||^2 + ||B||^2 - 2*A*B))的方法:

d = real(sqrt(bsxfun(@plus, dot(Matrix_1,Matrix_1,2), ...
    bsxfun(@minus, dot(Matrix_2,Matrix_2,2).', 2 * Matrix_1*Matrix_2.')))).';

如果更改矩阵的解释,则可以避免最终的转置。

注意:不应有任何复杂的值要处理,real但在很小的差异可能会导致极小的负数的情况下存在。


编辑:可能会更快dot

d = sqrt(bsxfun(@plus, sum(Matrix_1.*Matrix_1,2), ...
    bsxfun(@minus, sum(Matrix_2.*Matrix_2,2)', 2 * Matrix_1*Matrix_2.'))).';

或只需打一个电话bsxfun

d = sqrt(bsxfun(@plus, sum(Matrix_1.*Matrix_1,2), sum(Matrix_2.*Matrix_2,2)') ...
    - 2 * Matrix_1*Matrix_2.').';

注意:这最后的操作顺序为您提供相同的结果,而不是error ~1e-14


编辑2:复制M2_Index_Dist

II = ndgrid(1:size(Matrix_2,1),1:size(Matrix_2,1));
M2_Index_Dist = [II(:) d(:)];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用矩阵乘法用numpy计算L2距离

来自分类Dev

对于给定位移,优化阵列的距离成对计算

来自分类Dev

成对正弦距离计算

来自分类Dev

C ++中的成对距离计算

来自分类Dev

功能数据之间的L2距离(曲线平滑)

来自分类Dev

计算缺少值的scipy中的成对距离

来自分类Dev

使用TensorFlow进行成对距离计算

来自分类Dev

计算加权成对马氏距离

来自分类Dev

R中的距离计算优化

来自分类Dev

numpy python:向量化距离函数以计算尺寸为(m,3)的2个矩阵的成对距离

来自分类Dev

在Matlab中优化成对距离函数的参数

来自分类Dev

计算平方欧几里德距离的可能优化

来自分类Dev

如何使用外积计算R中的成对欧几里得距离

来自分类Dev

在Matlab中高效计算成对平方的欧几里得距离

来自分类Dev

计算后续成对坐标之间的累积欧式距离

来自分类Dev

在Matlab中高效计算成对平方的欧几里得距离

来自分类Dev

特征相似度的成对距离计算(多维矩阵)

来自分类Dev

如何使用外部乘积计算R中的成对欧几里得距离

来自分类Dev

优化2个**长**二维点阵列之间的距离计算

来自分类Dev

成对相似度/相似度矩阵计算优化

来自分类Dev

编译器优化对使用PAPI的FLOP和L2 / L3缓存未命中率的影响

来自分类Dev

使用pairwise_distances_chunked 找到成对余弦距离矩阵的优化方法

来自分类Dev

MySQL查询成对计算2列

来自分类Dev

在MATLAB中优化/向量化Mahalanobis距离计算

来自分类Dev

在大型numpy三维数组上计算二维成对距离

来自分类Dev

计算批次中的成对距离而无需在Tensorflow中复制张量?

来自分类Dev

计算两个整数矩阵/数据帧的所有行之间的成对汉明距离

来自分类Dev

如何在PyTorch中计算点集和线之间的成对距离?

来自分类Dev

在TensorFlow中计算张量中所有向量之间的成对欧几里得距离的有效方法

Related 相关文章

  1. 1

    使用矩阵乘法用numpy计算L2距离

  2. 2

    对于给定位移,优化阵列的距离成对计算

  3. 3

    成对正弦距离计算

  4. 4

    C ++中的成对距离计算

  5. 5

    功能数据之间的L2距离(曲线平滑)

  6. 6

    计算缺少值的scipy中的成对距离

  7. 7

    使用TensorFlow进行成对距离计算

  8. 8

    计算加权成对马氏距离

  9. 9

    R中的距离计算优化

  10. 10

    numpy python:向量化距离函数以计算尺寸为(m,3)的2个矩阵的成对距离

  11. 11

    在Matlab中优化成对距离函数的参数

  12. 12

    计算平方欧几里德距离的可能优化

  13. 13

    如何使用外积计算R中的成对欧几里得距离

  14. 14

    在Matlab中高效计算成对平方的欧几里得距离

  15. 15

    计算后续成对坐标之间的累积欧式距离

  16. 16

    在Matlab中高效计算成对平方的欧几里得距离

  17. 17

    特征相似度的成对距离计算(多维矩阵)

  18. 18

    如何使用外部乘积计算R中的成对欧几里得距离

  19. 19

    优化2个**长**二维点阵列之间的距离计算

  20. 20

    成对相似度/相似度矩阵计算优化

  21. 21

    编译器优化对使用PAPI的FLOP和L2 / L3缓存未命中率的影响

  22. 22

    使用pairwise_distances_chunked 找到成对余弦距离矩阵的优化方法

  23. 23

    MySQL查询成对计算2列

  24. 24

    在MATLAB中优化/向量化Mahalanobis距离计算

  25. 25

    在大型numpy三维数组上计算二维成对距离

  26. 26

    计算批次中的成对距离而无需在Tensorflow中复制张量?

  27. 27

    计算两个整数矩阵/数据帧的所有行之间的成对汉明距离

  28. 28

    如何在PyTorch中计算点集和线之间的成对距离?

  29. 29

    在TensorFlow中计算张量中所有向量之间的成对欧几里得距离的有效方法

热门标签

归档