Calculating distance between 3 points.
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
gblmtc
el 16 de Mayo de 2018
Respondida: gblmtc
el 17 de Mayo de 2018
Hi there!
I have 3 matrix, each one has the first column the X coordinate, the second column the y coordinate and the 3rd column is the z coordinate. What I have to obtain is the distances between P and D and the distance between P and A in order to make a plot and to present the differences.
P = [2 3 6 ; 6 94 20 ; 9 6 3 ; 6 3 2];
D = [5 6 9 ; 8 3 20 ; 9 8 7 ; 6 5 8];
A = [5 2 3 ; 8 9 4 ; 7 5 2 ; 9 8 5];
xi = P(:,1);
yi = P(:,2);
zi = P(:,3);
xj = D(:,1);
yj = D(:,2);
zj = D(:,3);
dist = sqrt((xi-xj).^2 + (yi-yj).^2 + (zi-zj).^2); % calculate dist between P and D
xj = A(:,1);
yj = A(:,2);
zj = A(:,3);
dist = sqrt((xi-xj).^2 + (yi-yj).^2 + (zi-zj).^2); % now it calculate dist between P and A
My teacher actually asked me to make a function which can calculate both distances and not to make 2 different formulas ( what I wrote in the code makes no sense :( ). I was thinking to use for loop in order to define xj,yj and zj because xi,yi and zi are always the same but I don't know how could I do that. Could you please give me a hint? Thanks!
0 comentarios
Respuesta aceptada
sloppydisk
el 16 de Mayo de 2018
You can just use vecnorm, right?
PD = vecnorm(P-D, 2, 2);
PA = vecnorm(P-A, 2, 2);
2 comentarios
sloppydisk
el 17 de Mayo de 2018
Editada: sloppydisk
el 17 de Mayo de 2018
Ah I think he wants you to write a function like vecnorm yourself. Check out how to do that by reading this link. You can use code similar to what you wrote, except wrapped inside a function getting two nx3 matrices as input.
Más respuestas (1)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!