update of localization ... probably the most borring and not interesting work I have...
[scilab.git] / scilab / modules / cacsd / macros / cont_mat.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - 
3 // 
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at    
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10 function c=cont_mat(a,b)
11 //c=cont_mat(a,b) or c=cont_mat(sl) is the controllability matrix.
12 // of the pair a,b or of the system sl=[a,b,c,d] (syslin list)
13 //                 2       n
14 //i.e. c=[b, ab, ab,...; ab ]  
15 //!
16 [lhs,rhs]=argn(0)
17 select type(a)
18  case 1  then
19     if rhs==1 then error(msprintf(gettext("%s: Wrong number of input arguments: %d expected"),"cont_mat",2)),end
20     [m,n]=size(a)
21     if m<>n then error(20,1),end
22     [mb,nb]=size(b);if mb<>n then error(60),end
23
24  case 16 then
25     if a(1)<>'lss' then error(91,1),end
26     [a,b]=a([2,3])
27     [n,n]=size(a)  
28  else error(msprintf(gettext("%s: Wrong type of input arguments: %s,%s pair or syslin list.\n"),"cont_mat","a","b"))
29 end;
30 c=b;for k=1:n-1, c=[b,a*c],end
31 endfunction