home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS1.DI$ / SCLIN.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  1.0 KB  |  42 lines

  1. % function newsys = sclin(sys,inputs,fac)
  2. %
  3. %   Scale specified inputs (columns) of a SYSTEM (VARYING)
  4. %   matrix by a scalar number FAC.
  5. %
  6. %   See also: *, MMULT, MSCL, SCLOUT, SCLIV and SEL.
  7.  
  8. function newsys = sclin(sys,inputs,fac)
  9. if nargin < 3
  10.   disp('usage: newsys = sclin(sys,inputs,fac)');
  11.   return
  12.  end
  13.  [nro,nco] = size(inputs);
  14.  [mtype,mrows,mcols,mnum] = minfo(sys);
  15.  if max([nro,nco]) > mcols & min([nro,nco]) > 1
  16.    error('too many inputs (columns) specified')
  17.    return
  18.  end
  19.  [nrf,ncf] = size(fac);
  20.  if nrf == 1 & ncf == 1
  21.    if mtype == 'syst'
  22.      [a,b,c,d] = unpck(sys);
  23.      b(:,inputs) = fac*b(:,inputs);
  24.      d(:,inputs) = fac*d(:,inputs);
  25.      newsys = pck(a,b,c,d);
  26.    elseif mtype == 'cons'
  27.      newsys = sys;
  28.      newsys(:,inputs) = fac*sys(:,inputs);
  29.    elseif mtype == 'empt'
  30.      newsys = [];
  31.    else
  32.      newsys = sys;
  33.      newsys(1:mnum*mrows,inputs) = fac*sys(1:mnum*mrows,inputs);
  34.    end
  35.  else
  36.    error('fac should be a scalar')
  37.    return
  38.  end
  39.  
  40. %
  41. % Copyright MUSYN INC 1991,  All Rights Reserved
  42.