MATLAB Answers

0

How to calculate the distance

Asad Abbas さんによって質問されました 2019 年 3 月 13 日
最新アクティビティ Asad Abbas さんによって コメントされました 2019 年 3 月 13 日
I have table B as given bellow. I have another point for example A=[100 111 80 120]. I want to calculate the euclidean distance between A and the columns (fourth, fifth, sixth and seventh) of B for each row.
B=
0 1 0 153 119 97 148
0 1 0 148 122 98 149
0 1 0 163 126 95 150
0 1 0 188 150 118 178

  2 件のコメント

Torsten
2019 年 3 月 13 日
... for each row ? What do you mean ?
Asad Abbas 2019 年 3 月 13 日
matric B has four rows. I want to claculate the deistance between A and the last four columns of B
such as distance between
153 119 97 148 and A=[100 111 80 120]
148 122 98 149 and A=[100 111 80 120]
163 126 95 150 and A=[100 111 80 120]
188 150 118 178 and A=[100 111 80 120]

サインイン to comment.

2 件の回答

Torsten
回答者: Torsten
2019 年 3 月 13 日
 採用された回答

distmat = B(:,4:7)-repmat(A,4,1);
dist = vecnorm(distmat.')

  4 件のコメント

Alex Mcaulley
2019 年 3 月 13 日
This code should work. Another option is:
distmat = B(:,4:7)-A;
dist = vecnorm(distmat.')
Torsten
2019 年 3 月 13 日
Works for me:
A = [100 111 80 120];
B = [0,1, 0, 153, 119, 97, 148;...
0, 1, 0, 148, 122, 98, 149;...
0, 1, 0, 163, 126, 95, 150;...
0, 1, 0, 188, 150, 118, 178];
distmat = B(:,4:7)-repmat(A,4,1);
dist = vecnorm(distmat.')
Asad Abbas 2019 年 3 月 13 日
Now its working.
Thank you so much.

サインイン to comment.


Alex Mcaulley
回答者: Alex Mcaulley
2019 年 3 月 13 日

What do you mean by distance? euclidean, just the difference...
If you are looking for the difference:
B = [0 1 0 153 119 97 148;
0 1 0 148 122 98 149;
0 1 0 163 126 95 150;
0 1 0 188 150 118 178];
A = [100 111 80 120];
res = B(:,4:7)-A;

  1 件のコメント

Asad Abbas 2019 年 3 月 13 日
I mean euclidean distance.

サインイン to comment.



Translated by