Line | |
---|
1 | function varargout = getvariables(X,whatvars) |
---|
2 | %GETVARIABLES Returns variable indicies to variables used in a SDPVAR object |
---|
3 | % |
---|
4 | % i = getvariables(x) |
---|
5 | % |
---|
6 | % Input |
---|
7 | % x : SDPVAR object |
---|
8 | % Output |
---|
9 | % i : DOUBLE |
---|
10 | % |
---|
11 | % Note : The difference compared DEPENDS is that nonlinear terms |
---|
12 | % are reported as separate variables. |
---|
13 | |
---|
14 | % Author Johan Löfberg |
---|
15 | % $Id: getvariables.m,v 1.1 2006/08/10 18:00:20 joloef Exp $ |
---|
16 | |
---|
17 | switch nargin |
---|
18 | case 1 |
---|
19 | varargout{1} = X.lmi_variables; |
---|
20 | case 2 |
---|
21 | [sqrList,CompressedList] = yalmip('nonlinearvariables'); |
---|
22 | used_variables = getvariables(X); |
---|
23 | if isempty(sqrList) |
---|
24 | LinearVariables = used_variables; |
---|
25 | NonlinearVariables=[]; |
---|
26 | else |
---|
27 | LinearVariables = setdiff(used_variables,sqrList(:,1)); |
---|
28 | NonlinearVariables = setdiff(used_variables,LinearVariables); |
---|
29 | end |
---|
30 | switch whatvars |
---|
31 | case 'linear' |
---|
32 | varargout{1} = LinearVariables; |
---|
33 | case 'nonlinear' |
---|
34 | varargout{1} = NonlinearVariables; |
---|
35 | case 'both' |
---|
36 | varargout{1} = LinearVariables; |
---|
37 | varargout{2} = NonlinearVariables; |
---|
38 | otherwise |
---|
39 | error |
---|
40 | end |
---|
41 | otherwise |
---|
42 | error |
---|
43 | end |
---|
Note: See
TracBrowser
for help on using the repository browser.