Distance between points in a table
    10 次查看(过去 30 天)
  
       显示 更早的评论
    
Hello all,
I have a table containing the (x,y) coordinates and I need to find the distance between each point and save it as an array. Could anybody please guide me?
Thanks in advance.
回答(1 个)
  Adam Danz
    
      
 2020-11-19
        >I have a table containing the (x,y) coordinates and I need to find the distance between each point [without using pdist | pdist2]
Calculate distances row-wise
Create input table
rng('default')
T = array2table(rand(8,2).*10, 'VariableNames',{'X','Y'})
Add a column Dist that shows the distance between rows n and n-1. 
T.Dist = [NaN; sqrt(diff(T.X).^2 + diff(T.Y).^2)]
Calculate pairwise distances
Create input table
rng('default')
T = array2table(rand(8,2).*10, 'VariableNames',{'X','Y'})
Create square matrix of pairwise distances 
[xi, yi] = meshgrid(1:numel(T.X), 1:numel(T.Y));
D = reshape(sqrt(diff(T.X([xi(:),yi(:)]),1,2).^2 + diff(T.Y([xi(:),yi(:)]),1,2).^2),size(xi))
D(i,j) is the distance between points T(i,:) and T(j,:).
0 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Classification Trees 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!