disteu.m
上传用户:jzquartz
上传日期:2008-06-09
资源大小:389k
文件大小:1k
源码类别:

Audio

开发平台:

Matlab

  1. function d = disteu(x, y)
  2. % DISTEU Pairwise Euclidean distances between columns of two matrices
  3. %
  4. % Input:
  5. %       x, y:   Two matrices whose each column is an a vector data.
  6. %
  7. % Output:
  8. %       d:      Element d(i,j) will be the Euclidean distance between two
  9. %               column vectors X(:,i) and Y(:,j)
  10. %
  11. % Note:
  12. %       The Euclidean distance D between two vectors X and Y is:
  13. %       D = sum((x-y).^2).^0.5
  14. %%%%%%%%%%%%%%%%%%
  15. %
  16. % Author:     Amin Koohi(Sohrevardi)
  17. %              AminSohrevardi@yahoo.com , AminKoohi@yahoo.com
  18. [M, N] = size(x);
  19. [M2, P] = size(y); 
  20. if (M ~= M2)
  21.     error('Matrix dimensions do not match.')
  22. end
  23. d = zeros(N, P);
  24. if (N < P)
  25.     copies = zeros(1,P);
  26.     for n = 1:N
  27.         d(n,:) = sum((x(:, n+copies) - y) .^2, 1);
  28.     end
  29. else
  30.     copies = zeros(1,N);
  31.     for p = 1:P
  32.         d(:,p) = sum((x - y(:, p+copies)) .^2, 1)';
  33.     end
  34. end
  35. d = d.^0.5;