📄 display.m
字号:
function sys = display(X)
%display Displays a SET object.
% Author Johan L鰂berg
% $Id: display.m,v 1.9 2006/09/27 13:52:09 joloef Exp $
nlmi = size(X.clauses,2);
if (nlmi == 0)
disp('empty SET')
return
end
lmiinfo{1} = 'Matrix inequality';
lmiinfo{2} = 'Element-wise';
lmiinfo{3} = 'Equality constraint';
lmiinfo{4} = 'Second order cone constraint';
lmiinfo{5} = 'Rotated Lorentz constraint';
lmiinfo{7} = 'Integrality constraint';
lmiinfo{8} = 'Binary constraint';
lmiinfo{9} = 'KYP constraint';
lmiinfo{10}= 'Eigenvalue constraint';
lmiinfo{11}= 'Sum-of-square constraint';
lmiinfo{12}= 'Logic constraint';
lmiinfo{13}= 'Parametric declaration';
lmiinfo{14}= 'Low-rank data declaration';
lmiinfo{15}= 'Uncertain declaration';
headers = {'ID','Constraint','Type','Tag'};
rankVariables = yalmip('rankvariables');
extVariables = yalmip('extvariables');
if nlmi>0
for i = 1:nlmi
data{i,1} = ['#' num2str(i)];
data{i,2} = X.clauses{i}.symbolic;
data{i,3} = lmiinfo{X.clauses{i}.type};
if length(getvariables(X.clauses{i}.data)) == 1
if any(ismember(getvariables(X.clauses{i}.data),rankVariables))
data{i,3} = 'Rank constraint';
end
end
if X.clauses{i}.type == 14
else
classification = '';
if any(ismembc(getvariables(X.clauses{i}.data),yalmip('intvariables')))
classification = [classification ',integer'];
end
if size(X.clauses{i},2)>1
classification = [classification ',logic'];
end
linearbilinearquadraticsigmonial = is(X.clauses{i}.data,'LBQS');
if ~linearbilinearquadraticsigmonial(1)
if linearbilinearquadraticsigmonial(4)
classification = [classification ',sigmonial'];
elseif linearbilinearquadraticsigmonial(2)
classification = [classification ',bilinear'];
elseif linearbilinearquadraticsigmonial(3)
classification = [classification ',quadratic'];
else
classification = [classification ',polynomial'];
end
end
data{i,4} = X.clauses{i}.handle;
if ~isreal(X.clauses{i}.data)
classification = [classification ',complex'];
end
%if ~isempty(intersect(getvariables(X.clauses{i}.data),extVariables))
if any(ismembc(getvariables(X.clauses{i}.data),extVariables))
classification = [classification ',derived'];
end
if length(classification)==0
else
data{i,3} = [data{i,3} ' (' classification(2:end) ')'];
end
if ismembc(X.clauses{i}.type,[1 2 3 4 5 9])
data{i,3} = [data{i,3} ' ' num2str(size(X.clauses{i}.data,1)) 'x' num2str(size(X.clauses{i}.data,2))];
end
end
end
end
% If no tags, don't show...
if length([data{:,4}])==0
headers = {headers{:,1:3}};
data = reshape({data{:,1:3}},length({data{:,1:3}})/3,3);
end
table('',headers,data)
function x= truncstring(x,n)
if length(x) > n
x = [x(1:n-3) '...'];
end
function x = fillstring(x,n)
x = [x blanks(n-length(x))];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -