Mercurial > hg > octave-nkf
comparison scripts/control/sysdimensions.m @ 3240:2e74d8aa1a20
[project @ 1999-04-07 18:33:23 by jwe]
author | jwe |
---|---|
date | Wed, 07 Apr 1999 18:34:20 +0000 |
parents | dbcc24961c44 |
children | 6dd06d525de6 |
comparison
equal
deleted
inserted
replaced
3239:d54ef0aa6e82 | 3240:2e74d8aa1a20 |
---|---|
22 # inputs: sys: system data structure | 22 # inputs: sys: system data structure |
23 # opt: string | 23 # opt: string |
24 # "all" (default): return all output arguments (see below) | 24 # "all" (default): return all output arguments (see below) |
25 # "cst": return n=number of continuous states | 25 # "cst": return n=number of continuous states |
26 # "dst": return n=number of discrete states | 26 # "dst": return n=number of discrete states |
27 # "st": return n=number of states (continuous and discrete) | |
27 # "in": return n=number of inputs | 28 # "in": return n=number of inputs |
28 # "out": return n = number of outputs | 29 # "out": return n=number of outputs |
29 # outputs: | 30 # outputs: |
30 # n: number of continuous states (or the specified dimension as shown above) | 31 # n: number of continuous states (or the specified dimension as shown above) |
31 # nz: number of discrete states | 32 # nz: number of discrete states |
32 # m: number of system inputs | 33 # m: number of system inputs |
33 # p: number of system outputs | 34 # p: number of system outputs |
47 n = sys.n; | 48 n = sys.n; |
48 nz = sys.nz; | 49 nz = sys.nz; |
49 m = length(sysgetsignals(sys,"in")); | 50 m = length(sysgetsignals(sys,"in")); |
50 p = length(sysgetsignals(sys,"out")); | 51 p = length(sysgetsignals(sys,"out")); |
51 yd = sys.yd; | 52 yd = sys.yd; |
52 legal_options = list("all","cst","dst","in","out"); | 53 legal_options = list("all","cst","dst","st","in","out"); |
53 legal_values = list(n,n,nz,m,p); | 54 legal_values = list(n,n,nz,n+nz,m,p); |
54 | 55 |
56 legal_opt = 0; | |
55 for ii=1:length(legal_options) | 57 for ii=1:length(legal_options) |
56 if(strcmp(nth(legal_options,ii),opt)) | 58 if(strcmp(nth(legal_options,ii),opt)) |
57 n = nth(legal_values,ii); | 59 n = nth(legal_values,ii); |
60 legal_opt = 1; | |
58 if(ii > 1 & nargout > 1) | 61 if(ii > 1 & nargout > 1) |
59 warning("opt=%s, %d output arguments requested",opt,nargout); | 62 warning("opt=%s, %d output arguments requested",opt,nargout); |
60 endif | 63 endif |
61 endif | 64 endif |
62 endfor | 65 endfor |
66 if(!legal_opt) | |
67 error("illegal option passed = %s",opt); | |
68 endif | |
63 | 69 |
64 endfunction | 70 endfunction |