source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/extras/@ncvar/plot.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 3.2 KB
Line 
1function 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
8if 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
58end
59
60% More complex expression. Get epi-graph model
61% project to our variables, and extract defining facets
62if nargin == 1
63    [p,Bi,Ci,Pn,Pfinal] = pwa(varargin{1});%#ok
64elseif isa(varargin{2},'lmi')
65    [p,Bi,Ci,Pn,Pfinal] = pwa(varargin{1},varargin{2});%#ok
66else
67    error('Second argument should be a domain defining SET object.');
68end
69if nargout>0
70    Y = mpt_plotPWA(Pn,Bi,Ci);
71else
72    mpt_plotPWA(Pn,Bi,Ci);
73end
74
75function S = extractrow(S,index)
76for i = 1:length(S)
77    S{i} = S{i}(index,:);
78end
Note: See TracBrowser for help on using the repository browser.