comparing between two arrays
이전 댓글 표시
sorry if my question is trivial , but i'm still beginner and need your help. i have 3 points in the space say a , b, c each one is an array 2x3 , say a=[2 3 4 ; 9 8 7] ,b =[ 5 2 1 ; 6 3 2] , c=[ 4 7 1; 1 2 3]. i want to compare the distance between points a and b (dist12) with the distance between a and c (dist13), which is longer? thank you
댓글 수: 5
Azzi Abdelmalek
2013년 10월 6일
A point in the space is represented by 1x3 array not 2x3
Mohammad Monfared
2013년 10월 6일
Azzi is right. assuming a and b are two points in 3-D space ( each have 3 components), their euclidean distance is: norm(a-b).
mariam
2013년 10월 7일
Jan
2013년 10월 7일
@mariam: No, it is not clear enough. "Distance" is defined for single points only. Therefore it is not uniquely defined, what you are looking for.
mariam
2013년 10월 8일
답변 (2개)
David Sanchez
2013년 10월 7일
a=[2 3 4 ; 9 8 7];
b =[ 5 2 1 ; 6 3 2];
c=[ 4 7 1; 1 2 3];
dist_ab_cluster_1 = norm(b(1,:)-a(1,:));
dist_ab_cluster_2 = norm(b(2,:)-a(2,:));
dist_ac_cluster_1 = norm(c(1,:)-a(1,:));
dist_ac_cluster_2 = norm(c(2,:)-a(2,:));
dist_ab_cluster_1 =
4.3589
dist_ab_cluster_2 =
7.6811
dist_ac_cluster_1 =
5.3852
dist_ac_cluster_2 =
10.7703
Andrei Bobrov
2013년 10월 7일
a=[2 3 4 ; 9 8 7]; b =[ 5 2 1 ; 6 3 2]; c=[ 4 7 1; 1 2 3];
data = cat(3,a,b,c);
s = size(data);
t = reshape(data(:,:,nchoosek(1:s(3),2)') , s(1),s(2),2,[]);
out = squezze(sqrt(sum(diff(t,[],3).^2,2)));
카테고리
도움말 센터 및 File Exchange에서 Random Number Generation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!