# pdist2 output is larger than expected

1 view (last 30 days)
Pelajar UM on 15 Nov 2021
Commented: Pelajar UM on 15 Nov 2021
X= pdist2 (A,B, "chebychev")
A and B both are 3000x3 arrays (x,y,z data).
Why is X a 3000x3000 array rather than a 3000x1 array?
This seems to give the right answer though... why?
Z =diag(pdist2 (A,B, "chebychev"));

Dave B on 15 Nov 2021
pdist2 is providing all the pairwise distances. It compares row 1 of A with row 1 of B (Z(1,1)), then row 1 of A with row 2 of B (Z(1,2) and Z(2,1)), etc. Along the diagonal are the matching row cases.
##### 3 CommentsShow 1 older commentHide 1 older comment
Dave B on 15 Nov 2021
Edited: Dave B on 15 Nov 2021
Chebyshev distance is the maximum distance across dimensions, right?
a=rand(10);
b=rand(10);
cheby_pdist2=diag(pdist2(a,b,'chebychev'))
cheby_pdist2 = 10×1
0.8386 0.6272 0.8585 0.6400 0.4895 0.8044 0.6681 0.7439 0.8985 0.7146
cheby_daveb=max(abs(a-b),[],2)
cheby_daveb = 10×1
0.8386 0.6272 0.8585 0.6400 0.4895 0.8044 0.6681 0.7439 0.8985 0.7146
Pelajar UM on 15 Nov 2021
Right. Thank you so much.