source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/@sdpvar/triu.m @ 37

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

Added original make3d

File size: 1012 bytes
Line 
1function X=triu(X,r)
2%TRIU (overloaded)
3
4% Author Johan Löfberg
5% $Id: triu.m,v 1.6 2006/07/26 20:17:58 joloef Exp $   
6
7
8if nargin==1
9    r = 0;
10end
11
12n = X.dim(1);
13m = X.dim(2);
14
15ind = reshape(1:n*m,n,m);
16ind = triu(ind,r);
17ind = find(ind==0);
18
19[i,j,k] = find(X.basis);
20zero_these = find(ismember(i,ind));
21i(zero_these)=[];
22j(zero_these)=[];
23k(zero_these)=[];
24X.basis = sparse(i,j,k,size(X.basis,1),size(X.basis,2));
25X.conicinfo = [0 0];
26X = clean(X);
27return
28
29if nargin==1
30    r = 0;
31end
32
33Y = X;
34x_lmi_variables = X.lmi_variables;
35lmi_variables = [];
36n = X.dim(1);
37m = X.dim(2);
38triuX = triu(reshape(X.basis(:,1),n,m),r);
39Y.basis = triuX(:);
40
41j = 1;
42for i = 1:length(x_lmi_variables)
43        triuX = triu(reshape(X.basis(:,i+1),n,m),r);
44        if (norm(triuX,inf)>0)
45                Y.basis(:,j+1) = triuX(:);
46                lmi_variables = [lmi_variables x_lmi_variables(i)];
47                j = j+1;
48        end
49end   
50Y.dim(1) = size(triuX,1);
51Y.dim(2) = size(triuX,2);
52Y.lmi_variables = lmi_variables;
53% Reset info about conic terms
54Y.conicinfo = [0 0];
55Y = clean(Y);
Note: See TracBrowser for help on using the repository browser.