2013-10-30 75 views
3

我在Matlab得到了以下问题:计算距离

假设我们有两个矩阵一个相同大小,每排在那里()代表随时间变化的数据集(n)。 Matrix A包含参考数据和Matrix要求测试的数据。我现在要计算每个和一个行的每一组合之间的相对距离,使用

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 

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

回答

3

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

d = pdist2(A,B); 

入口d(m,n)A(m,:)B(n,:)之间的距离。

+0

正是我在找的东西!谢了哥们! – HGM