3

我在 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

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

4

1 回答 1

3

就在这里。您可以使用pdist2(参见文档):

d = pdist2(A,B);

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

于 2013-10-30T19:09:59.407 回答