📄 plot.m
字号:
function x_opt = plot(varargin)
%plot plots feasible set
%
% p = plot(F,x,c,n,options)
%
% F: set object
% x: projected variables [2x1 sdpvar]
% c: color [char or double]
% n: #vertices [double ]
% options: options structure from sdpsettings
% Author Johan L鰂berg
% $Id: plot.m,v 1.4 2005/02/14 21:02:00 johanl Exp $
% Get the onstraints
if nargin<1
return
end
F = varargin{1};
if length(F)==0
return;
end
if nargin < 5
opts = sdpsettings('verbose',0);
else
opts = varargin{5};
if isempty(opts)
opts = sdpsettings('verbose',0);
end
end
if nargin < 4
n = 40;
else
n = varargin{4};
if isempty(n)
n = 40;
end
end
if nargin < 3
color = 'b';
else
color = varargin{3};
if isempty(color)
color = 'b';
end
end
if nargin < 2
x_vars = depends(F);
x = recover(x_vars);
x_set = x(1:2);
else
x_set = varargin{2};
x_set = x_set(:);
if isempty(x_set)
x_vars = depends(F);
x = recover(x_vars);
x_set = x(1:2);
end
end
if isempty(F)
return
end
sol = solvesdp(F,sum(x_set),opts);
%[model,recoverdata] = export(F,randn(length(x),1)'*x,opts,[],[]);
%uv = find(ismember(recoverdata.used_variables,getvariables(x_set)));
%solver = eval(['@' model.solver.call]);
%sol = feval(solver,model);
if sol.problem == 1
if nargout==0
plot(0)
end
x_opt =[];
else
x_opt = [];
phi = [];
h = waitbar(0,'Please wait...');
for i = 0:n-1
c = [cos(i*2*pi/n);sin(i*2*pi/n)];
sol = solvesdp(F,c'*x_set,opts);
x_opt = [x_opt relaxdouble(x_set)];
% model.c=0*model.c;
% model.c(uv)=c;
% sol = feval(solver,model);
% xout=recoverdata.H*sol.x+recoverdata.x_equ;
% x_opt = [x_opt xout(uv)];
waitbar(i/n,h)
end
close(h);
if nargout == 0
patch(x_opt(1,:),x_opt(2,:),color);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -