41 lines
1.1 KiB
Matlab
Executable File
41 lines
1.1 KiB
Matlab
Executable File
function varargout = getvariables(X,whatvars)
|
|
%GETVARIABLES Returns variable indicies to variables used in a SDPVAR object
|
|
%
|
|
% i = getvariables(x)
|
|
%
|
|
% Input
|
|
% x : SDPVAR object
|
|
% Output
|
|
% i : DOUBLE
|
|
%
|
|
% Note : The difference compared DEPENDS is that nonlinear terms
|
|
% are reported as separate variables.
|
|
|
|
switch nargin
|
|
case 1
|
|
varargout{1} = X.lmi_variables;
|
|
case 2
|
|
[sqrList,CompressedList] = yalmip('nonlinearvariables');
|
|
used_variables = getvariables(X);
|
|
if isempty(sqrList)
|
|
LinearVariables = used_variables;
|
|
NonlinearVariables=[];
|
|
else
|
|
LinearVariables = setdiff(used_variables,sqrList(:,1));
|
|
NonlinearVariables = setdiff(used_variables,LinearVariables);
|
|
end
|
|
switch whatvars
|
|
case 'linear'
|
|
varargout{1} = LinearVariables;
|
|
case 'nonlinear'
|
|
varargout{1} = NonlinearVariables;
|
|
case 'both'
|
|
varargout{1} = LinearVariables;
|
|
varargout{2} = NonlinearVariables;
|
|
otherwise
|
|
error
|
|
end
|
|
otherwise
|
|
error
|
|
end
|