How to measure the shortest distance among different points using Matlab
    2 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Lets suppoese i have the points as shown by B.  For example, P1(1,1,2 ), P2(1,2,3 ) etc as shown by B. I want to measure the shortest distance among these points. 
x = B(:,1), y =B(:,2) and z = B(:,3). 
Thanks in advance for support from community members. Regards!
B =
     1     1     3
     1     2     3
     2     3     1
     2     3     2
     3     1     1
     3     3     1
     3     3     2
5 Commenti
Risposte (1)
  Jakob
      
 il 28 Ott 2020
        B = randi([-10 10],5,3); % just some random numbers
minimum = sqrt(sum((B(1,:)- B(2,:)).^2));
for i = 1 : size(B,1)-1
    for j = i+1 : size(B,1)
        minimum = min(minimum,sqrt(sum((B(i,:)- B(j,:)).^2)));
    end
end
disp(minimum)
3 Commenti
  Jakob
      
 il 10 Mar 2021
				Hi again, sorry I can't reply in private to your email.
About your question:. "I think pdist2() can only be used for 2D, right.". 
Be careful, pdist2() works different then pdist(), you can safely use 
min(pdist(YOURMATRIX))
 to measure the minimal distance for any dimension. It's basically the same as my code
Vedere anche
Categorie
				Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



