📄 addlmi.m
字号:
function sys = addlmi(F,X,handlestring)
% ADDLMI Obsolete.
%
% Use overloaded + instead.
%
% Author Johan L鰂berg
% $Id: addlmi.m,v 1.2 2004/07/19 13:54:35 johanl Exp $
error('addlmi is obsolete. Use overloaded +');
switch(nargin)
case {0,1}
error('ADDLMI needs at least two arguments')
case 2
% sys = F + lmi(X);
handlestring = '';
case 3
% sys = F + lmi(X,handlestring);
if ~isa(handlestring,'char')
error('The handle must be a string')
end
otherwise
error('addlmi takes at mopst 3 arguments');
end
% Return empty LMI in degenerate case
if isempty(X)
sys = F;
return
end
%Symbolic expression given
% 0 : Nothing (i.e. error)
% 1 : LMI
% 2 : Elementwise
% 3 : Equality
TypeofConstraint = 0;
switch class(X)
case 'char'
try
sdpvarExpr = parseLMI(X);
X = strrep(X,'.>','>');
X = strrep(X,'.<','<');
X = strrep(X,'=','==');X = strrep(X,'====','==');
catch
error(lasterr)
end
try
Fi=evalin('caller',sdpvarExpr);
if ~(isa(Fi,'sdpvar') | isa(Fi,'constraint'))
error('The string does not define a constraint involving SDPVAR objects')
end
catch
error(lasterr)
end
case 'sdpvar'
Fi = X;
X='Numeric value';
case 'constraint'
Fi = getlist(X);
if length(Fi)>1
error('Hey, you have updated your code for version 3, so why don''t you remove those addlmi''s');
else
Fi = Fi{1};
end
X='Numeric value';
otherwise
error('LMI should be an sdpvar object or string.')
end
if isempty(Fi)
sys = F;
return
end
switch nargin
case 2
sys = F + lmi(Fi);
case 3
sys = F + lmi(Fi,handlestring);
otherwise
end
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -