【问题标题】:Max Euclidean distance between two columns of a matrix in Matlab / OctaveMatlab / Octave中矩阵两列之间的最大欧几里得距离
【发布时间】:2017-05-12 13:39:48
【问题描述】:

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

到目前为止我所拥有的:

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

这不起作用,我不知道为什么。任何帮助表示赞赏!

【问题讨论】:

  • 定义“不工作”。请提供示例输入、您收到的输出以及您的预期输出。
  • 问题出在之前的代码中,我发现了错误!不过,谢谢!

标签: matlab matrix octave euclidean-distance


【解决方案1】:

您可以使用统计工具箱/包中的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(:)));

【讨论】:

  • 第一个给我一个错误。整个代码中的第二个错误的结束值:(
  • 那么你需要给出一个输入和期望输出的例子。很难猜出你想要什么
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 2011-09-05
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多