📄 is.m
字号:
function YESNO = is(F,property)
%IS Check property of constraint.
% d = IS(x,property) returns 1 if 'property' holds
%
% Properties possible to test are: 'elementwise', 'sdp',
% 'socc', 'equality', 'lmi', 'linear', 'kyp', 'sos'
% Author Johan L鰂berg
% $Id: is.m,v 1.13 2005/03/03 18:08:43 johanl Exp $
if isempty(F.clauses)
YESNO = 0;
else
% for i = 1:length(F.clauses)
% Fi = F.clauses{i};
YESNO=zeros(length(F.clauses),1);
switch property
case 'equality'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = (Fi.type==3);
end
case {'element-wise','elementwise'}
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = (Fi.type==2);
end
case {'socc','socp'}
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = (Fi.type==4);
end
case 'sdp'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = Fi.type==1;
end
case 'lmi'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = full((((Fi.type==1) | (Fi.type==9)) | ((Fi.type==2) & (prod(size(Fi.data))==1))) & (islinear(Fi.data)));
end
case 'linear'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = islinear(Fi.data);
end
case 'kyp'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = (Fi.type==9);
end
case 'sos'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = (Fi.type==11);
end
case 'eig'
YESNO(i,1) = (Fi.type==10);
case 'sigmonial'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
monomtable = yalmip('monomtable');
monomtable = monomtable(getvariables(Fi.data),:);
YESNO(i,1) = any(find(any(0>monomtable,2) | any(monomtable-fix(monomtable),2)));
end
case 'binary'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO = Fi.type == 8;
end
case 'integer'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO = Fi.type == 7;
end
case 'logic'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = Fi.type == 12;
end
case 'lowrank'
YESNO(i,1) = Fi.type == 14;
case 'complex'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = is(Fi.data,'complex');
end
case 'real'
for i = 1:length(F.clauses)
Fi = F.clauses{i};
YESNO(i,1) = is(Fi.data,'real');
end
otherwise
YESNO = error('Huh?');
end
% end
end
YESNO = full(YESNO);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -