home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l460 / 2.ddi / ELMAT.DI$ / RESHAPE.M < prev    next >
Encoding:
Text File  |  1993-03-07  |  517 b   |  24 lines

  1. function y = reshape(x,m,n)
  2. %RESHAPE Change size.
  3. %    RESHAPE(X,M,N) returns the M-by-N matrix whose elements
  4. %    are taken columnwise from X.  An error results if X does
  5. %    not have M*N elements.
  6.  
  7. %    Copyright (c) 1984-93 by The MathWorks, Inc.
  8.  
  9. [mm,nn] = size(x);
  10. if mm*nn ~= m*n
  11.     error('Matrix must have M*N elements.')
  12. end
  13.  
  14. if ~issparse(x)
  15.    y = zeros(m,n);
  16.    y(:) = x;
  17. else
  18.    [i,j,s] = find(x);
  19.    k = (j-1)*mm + i;
  20.    i = rem(k-1,m) + 1;
  21.    j = (k-i)/m + 1;
  22.    y = sparse(i,j,s,m,n);
  23. end
  24.