home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS2.DI$ / DSCL_VEC.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  963 b   |  35 lines

  1. %function [rv,condd] = dscl_vec(dl,nblk,blk,blkp)
  2. %    Converts a matrix D into a row vector, and
  3. %       calculates the condition number of D.
  4. function [rv,condd] = dscl_vec(dl,nblk,blk,blkp)
  5. % it would be faster if we knew the dimension of RV
  6. % in advance
  7.  maxsv = 0;
  8.  minsv = inf;
  9.  rv = [];
  10.  for i=1:nblk
  11.    if blk(i,2) == 0
  12.      sv = svd(dl(blkp(i,2):blkp(i+1,2)-1,blkp(i,2):blkp(i+1,2)-1));
  13.      if max(sv) > maxsv
  14.        maxsv = max(sv);
  15.      end
  16.      if min(sv) < minsv
  17.        minsv = min(sv);
  18.      end
  19.      for j=1:blk(i,1)
  20.        rv = [rv dl(blkp(i,2)+j-1,blkp(i,2):blkp(i+1,2)-1)];
  21.      end
  22.    else
  23.      if abs(dl(blkp(i,2),blkp(i,2))) > maxsv
  24.        maxsv = abs(dl(blkp(i,2),blkp(i,2)));
  25.      end
  26.      if abs(dl(blkp(i,2),blkp(i,2))) < minsv
  27.        minsv = abs(dl(blkp(i,2),blkp(i,2)));
  28.      end
  29.      rv = [rv dl(blkp(i,2),blkp(i,2))];
  30.    end
  31.  end
  32.  condd = maxsv/minsv;
  33. %
  34. % Copyright MUSYN INC 1991,  All Rights Reserved
  35.