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

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

Added original make3d

File size: 1.0 KB
Line 
1function m = monolistcoeff(n,d,summax)
2%MONOLISTCOEFF  Internal function used in SOS programs
3
4% Author Johan Löfberg
5% $Id: monolistcoeff.m,v 1.5 2005/02/20 17:04:28 johanl Exp $
6
7if length(d)==1
8    d = repmat(full(d),1,full(n));
9end
10
11if nargin==2
12    summax = (sum(d));
13end
14
15if 0
16    dmax = sum(d);%max(full(d));%sum(d);
17    base = eye(n);
18    m = base;
19    for i = 1:dmax-1
20        temp=[];
21        for k = 1:n
22            temp = [temp;m+repmat(base(k,:),size(m,1),1)];
23        end
24        ii=find(~any(temp-repmat(d,size(temp,1),1)>0,2));
25        temp=temp(ii,:);
26        ii=find(~any(sum(temp,2)-summax>0,2));
27        temp=temp(ii,:);
28
29        m = [m;temp];
30        [ii,jj,kk]=uniquesafe(m,'rows');
31        m = m(jj,:);
32    end
33    % Add constant
34    m = [zeros(1,n);m];
35else
36    m = (0:d(1))';
37    for i = 2:n
38        z = (0:d(i))';
39        m = [kron(m,ones(size(z,1),1)) kron(ones(size(m,1),1),z)];
40        [ii,jj,kk]=uniquesafe(m,'rows');
41        m = m(jj,:);
42        m = m(sum(m,2)<=summax,:);
43    end   
44end
45m = full(m);
Note: See TracBrowser for help on using the repository browser.