Calculating efficiently the euclidean distance

조회 수: 4 (최근 30일)
Riccardo Tronconi
Riccardo Tronconi 2021년 7월 19일
댓글: Riccardo Tronconi 2021년 7월 19일
Hi guys I would like to calculate the euclidean distance without a for loop to speed up my running time.
I have a timetable A as input with m-rows and 4 columns:
1st column: X point 1
2nd column: Y point 1
3rd column: X point 2
4th column: Y point2
Now I loop over each row of the timetable and I use norm( A(i, 1:2) - A(i, 3:4)). Of course the output should be mx1.
Is there a more efficient way to compute this operation?

채택된 답변

Matt J
Matt J 2021년 7월 19일
편집: Matt J 2021년 7월 19일
In recent Matlab, you can just do,
vecnorm(A(:, 1:2) - A(:, 3:4),2,2);
In less recent Matlab, you can do,
sqrt(sum( (A(:, 1:2) - A(:, 3:4)).^2,2))

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by