gidxsint.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. function [ja,jb,c] = gidxsint(a,b)
  2. %GIDXSINT Get indices of elements in a set intersection. 
  3. %   [IA,IB,C] = GIDXSINT(A,B) returns the intersection C
  4. %   of the sets A and B and the indices vectors (in ascending 
  5. %   order) IA and IB such that C = A(IA) and C = B(IB). 
  6. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Oct-96.
  7. %   Last Revision: 29-jun-1999.
  8. %   Copyright 1995-2002 The MathWorks, Inc.
  9. %   $Revision: 1.4 $  $Date: 2002/04/14 19:47:51 $
  10. meth = 1;
  11. if nargout<2
  12.    nbmax = 30;
  13.    if length(b)<nbmax , meth = 2; end
  14. end
  15. switch meth
  16.   case 1
  17.     [c,ia,ib] = intersect(a,b);
  18.     [ibs,iib] = sort(ib);
  19.     ja = ia(iib);
  20.     if nargout>1
  21.        [ias,iia] = sort(ia);
  22.        jb = ib(iia);
  23.     end
  24.   case 2
  25.     ja = zeros(size(b));
  26.     for k = 1:length(b)
  27.         ok = find(b(k)==a);
  28.         if ok , ja(k) = ok; end
  29.     end
  30.     ja = ja(ja>0);
  31. end
  32. % c = a(ia) = b(ib)
  33. % c(iia) = a(ias)
  34. % c(iib) = b(ibs)
  35. %
  36. % (c ordered like in a) = b(ib(iia))
  37. % (c ordered like in b) = a(ia(iib))