39 lines
793 B
Matlab
Executable File
39 lines
793 B
Matlab
Executable File
function varargout=size(varargin)
|
|
%size Returns the number of inequalities and equalities
|
|
%
|
|
% n = SIZE(F) Returns the number of inequalities
|
|
% [n,m] = SIZE(F) Returns the number of inequalities and equalities
|
|
%
|
|
% See also LMI, ADDLMI
|
|
|
|
F = varargin{1};
|
|
nequ = 0;
|
|
nlmi = 0;
|
|
for i = 1:size(F.clauses,2)
|
|
if F.clauses{i}.type==3
|
|
nequ = nequ + 1;
|
|
else
|
|
nlmi = nlmi + 1;
|
|
end
|
|
end
|
|
|
|
if nargin == 1
|
|
switch (nargout)
|
|
case {0,1}
|
|
varargout{1} = nlmi;
|
|
case 2
|
|
varargout{1} = nlmi;
|
|
varargout{2} = nequ;
|
|
otherwise
|
|
error('>2 outputs in size?');
|
|
end
|
|
else
|
|
switch(varargin{2})
|
|
case 1
|
|
varargout{1} = nlmi;
|
|
case 2
|
|
varargout{1} = nequ;
|
|
otherwise
|
|
error('Second argument should be 1 (# LMIs) or 2 (# equalities)');
|
|
end
|
|
end |