matlab - 计算两个矩阵中每个行组合之间的距离

标签 matlab matrix

我在 Matlab 中遇到了以下问题:

假设我们有两个大小相同的矩阵 AB,其中每一行 (m) 代表一个随时间变化的数据集 ( n)。矩阵 A 包含引用数据,矩阵 B 包含要测试的数据。我现在想计算 AB 中每个行组合之间的相对距离,使用

d(m_i,m_j) = sqrt(sum((A(m_x,:)-B(m_y,:).^2))

通过 for 循环解决这个问题会导致

for m_x = 1:size(A,2)
    for m_y = 1:size(A,2)
        d(m_i,m_j) = sqrt(sum((A(m_i,:)-B(m_j,:).^2));
    end
end

有没有更优雅(也许更快)的方法?

最佳答案

是的,有。您可以使用 pdist2(参见 doc):

d = pdist2(A,B);

条目 d(m,n)A(m,:)B(n,:) 之间的距离。

关于matlab - 计算两个矩阵中每个行组合之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691539/

相关文章:

matrix - 如何在 JULIA 中有效地构建以下形式的 block 矩阵?

matlab - 如何在 MATLAB 中求图像的标准差

arrays - 按数字过滤 Matlab 元胞数组会留下虚假错误

matlab - 如何在matlab中合并两个不同维度的矩阵

python - 处理两个列表,逐行迭代并连接值

vba - 基质分布

c++ - 无法构建 mex 文件

matlab - 复制向量将它们向右移动

java - 为什么在正确调用且没有语法错误的情况下会跳过此方法?

c++ - 为什么我的二维表显示不正确?