[37] | 1 | function Y=plot(varargin) |
---|
| 2 | %PLOT (overloaded) |
---|
| 3 | |
---|
| 4 | % Author Johan Löfberg |
---|
| 5 | % $Id: plot.m,v 1.1 2006/08/10 18:00:21 joloef Exp $ |
---|
| 6 | |
---|
| 7 | % Fast version for plotting simple PWA objects |
---|
| 8 | if nargin == 1 |
---|
| 9 | X = varargin{1}; |
---|
| 10 | if isa(varargin{1},'sdpvar') |
---|
| 11 | if length(X) == 1 |
---|
| 12 | if isequal(full(getbase(X)),[0 1]) |
---|
| 13 | extstruct = yalmip('extstruct',getvariables(X)); |
---|
| 14 | if ~isempty(extstruct) |
---|
| 15 | if isequal(extstruct.fcn,'pwa_yalmip') | isequal(extstruct.fcn,'pwq_yalmip')%#ok |
---|
| 16 | switch extstruct.arg{3} |
---|
| 17 | case '' |
---|
| 18 | otherwise |
---|
| 19 | Pn = polytope; Bi = {}; Ci = {}; |
---|
| 20 | index = extstruct.arg{5}; |
---|
| 21 | for i = 1:length(extstruct.arg{1}) |
---|
| 22 | % Pick out row |
---|
| 23 | for j = 1:length(extstruct.arg{1}{i}.Bi) |
---|
| 24 | extstruct.arg{1}{i}.Bi{j} = extstruct.arg{1}{i}.Bi{j}(index,:); |
---|
| 25 | extstruct.arg{1}{i}.Ci{j} = extstruct.arg{1}{i}.Ci{j}(index,:); |
---|
| 26 | end |
---|
| 27 | if isempty(extstruct.arg{1}{i}.Ai{1}) |
---|
| 28 | Pn = [Pn extstruct.arg{1}{i}.Pn]; |
---|
| 29 | Bi = cat(2, Bi, extstruct.arg{1}{i}.Bi); |
---|
| 30 | Ci = cat(2, Ci, extstruct.arg{1}{i}.Ci); |
---|
| 31 | else |
---|
| 32 | if nnz([extstruct.arg{1}{i}.Ai{:}]) == 0 |
---|
| 33 | Pn = [Pn extstruct.arg{1}{i}.Pn]; |
---|
| 34 | Bi = cat(2, Bi, extstruct.arg{1}{i}.Bi); |
---|
| 35 | Ci = cat(2, Ci, extstruct.arg{1}{i}.Ci); |
---|
| 36 | else |
---|
| 37 | |
---|
| 38 | hold on |
---|
| 39 | mpt_plotPWQ(extstruct.arg{1}{i}.Pn, ... |
---|
| 40 | extstruct.arg{1}{i}.Ai, ... |
---|
| 41 | extstruct.arg{1}{i}.Bi, ... |
---|
| 42 | extstruct.arg{1}{i}.Ci, []); |
---|
| 43 | hold off |
---|
| 44 | end |
---|
| 45 | end |
---|
| 46 | end |
---|
| 47 | if ~isempty(Bi), |
---|
| 48 | mpt_plotPWA(Pn, Bi, Ci); |
---|
| 49 | end |
---|
| 50 | drawnow |
---|
| 51 | return |
---|
| 52 | end |
---|
| 53 | end |
---|
| 54 | end |
---|
| 55 | end |
---|
| 56 | end |
---|
| 57 | end |
---|
| 58 | end |
---|
| 59 | |
---|
| 60 | % More complex expression. Get epi-graph model |
---|
| 61 | % project to our variables, and extract defining facets |
---|
| 62 | if nargin == 1 |
---|
| 63 | [p,Bi,Ci,Pn,Pfinal] = pwa(varargin{1});%#ok |
---|
| 64 | elseif isa(varargin{2},'lmi') |
---|
| 65 | [p,Bi,Ci,Pn,Pfinal] = pwa(varargin{1},varargin{2});%#ok |
---|
| 66 | else |
---|
| 67 | error('Second argument should be a domain defining SET object.'); |
---|
| 68 | end |
---|
| 69 | if nargout>0 |
---|
| 70 | Y = mpt_plotPWA(Pn,Bi,Ci); |
---|
| 71 | else |
---|
| 72 | mpt_plotPWA(Pn,Bi,Ci); |
---|
| 73 | end |
---|
| 74 | |
---|
| 75 | function S = extractrow(S,index) |
---|
| 76 | for i = 1:length(S) |
---|
| 77 | S{i} = S{i}(index,:); |
---|
| 78 | end |
---|