Distance between two set of points in space

8 visualizaciones (últimos 30 días)
andrea
andrea el 26 de En. de 2022
Comentada: David Hill el 27 de En. de 2022
Hello,
So I have a set of points in a matrix A 10x3 ( i.e 10 points with x,y,z coordinates) and another set of points in a matrix B 10x3. I want to find the distance between each point of A with each point of B whitout using a for loop.
Normally I would fix a point in A and compute all the distances with the points in B and then choose another point in A and do the same and so on. Is there a way to do it directly from the matrix A and B whitout a loop ?

Respuestas (2)

Matt J
Matt J el 26 de En. de 2022
distances = pdist2(A,B);

David Hill
David Hill el 26 de En. de 2022
Why no loop? Below is oneliner but has an internal loop.
C=arrayfun(@(x)vecnorm((A(x,:)-B)'),1:size(A,1),'UniformOutput',false);
  2 comentarios
andrea
andrea el 27 de En. de 2022
Yes thank you for the answer, that's nice. I thought that there could have been a better way without using for loop (some kind of vectorization) because in the case I have lots of points a for loop starts to be very slow.
David Hill
David Hill el 27 de En. de 2022
Matt J answer is better.
pdist2(A,B)

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Identification en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by