Matlab / Octave中矩阵两列之间的最大欧氏距离

Max Euclidean distance between two columns of a matrix in Matlab / Octave

我需要为程序计算在 Octave 中放在矩阵 A 中的向量的最大欧几里得距离。

我目前拥有的:

for i=1:n 
   for k=i:n+1
      C=A(:,i)-A(:,k);
      maxdiff=max(norm(C),maxdiff);  
   endfor
endfor

这不起作用,我不知道为什么。感谢您的帮助!

您可以使用统计工具箱/包中的pdist

A = rand(3,4); % example data
maxdiff = max(pdist(A.'));

或者,手动:

d = sum(bsxfun(@minus, A, permute(A, [1 3 2])).^2, 1);
maxdiff = sqrt(max(d(:)));