home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-src.tgz / tar.out / fsf / octave / scripts / signal / sinc.m < prev   
Text File  |  1996-09-28  |  611b  |  31 lines

  1. function result = sinc (x)
  2.  
  3. # usage: sinc(x)
  4. #
  5. #        Returns sin(pi*x)/(pi*x).
  6.  
  7. # We either need to set the do_fortran_indexing variable to "true"
  8. # or use reshape to convert the input matrix to a vector, so that
  9. # we can use find to determine the elements of x that equal zero.
  10. # I prefer reshaping.
  11.  
  12.   [nr, nc] = size(x);
  13.  
  14.   nels = nr*nc;
  15.  
  16.   x = reshape(x,nels,1);
  17.  
  18. # Set result to all ones initially.
  19.   result = ones(nels,1);
  20.  
  21. # Find non-zero elements in the input matrix.
  22.   i = find(x);
  23.  
  24.   if (!isempty(i))
  25.     result(i) = sin(pi*x(i))./(pi*x(i));
  26.   endif
  27.  
  28.   result = reshape(result,nr,nc);
  29.  
  30. endfunction
  31.