Distance between ALL(all combinations) points of matrix
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Lidziya Semeniuk
el 19 de Oct. de 2019
Respondida: Rik
el 19 de Oct. de 2019
How can i have a vector which consists of all the distances betweeen all points of matrix? I have 3D matrix B = 151*3 with points coordinates (X,Y,Z are columns). Possible combination of all this points should be 11325(n = 151,k=2).
`I can calculate the distance between 2 3d points like this:
dist = norm(B(1,:,:)-B(2,:,:))
but unfortunately my for loop doesn't work:
n = size(B,1)
for k = 1:n-1
for a = k:n-1;
Z1 = B(k,:,:);
Z2 = B(a+1,:,:);
dist = norm(Z2 - Z1);
end
end
it returns only one number , but i want to have a vector with all distances, so i can make a histogram from it.
Where is the mistake of the for loop? Or can i solve this with repmat function?
Thank you!
0 comentarios
Respuesta aceptada
Rik
el 19 de Oct. de 2019
Note that you are not calculating only unique combinations. The reason you are only getting a single value is that you are not indexing your output variable.
What you should do is generate the matrix of indices of the combinations and then loop through that matrix. You can use nchoosek to create the matrix.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing 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!