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

时间:2013-10-30 18:58:13

标签: matlab matrix

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

假设我们有两个矩阵 A B 具有相同的大小,其中每一行( m )代表一段时间内的数据集( 名词的)。 Matrix A 包含参考数据,Matrix B 包含要测试的数据。我现在想要使用

计算 A B 中每个行和每个行组合之间的相对距离
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

是否有更优雅(也许更快)的方式?

1 个答案:

答案 0 :(得分:3)

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

d = pdist2(A,B);

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