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

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

Added original make3d

File size: 763 bytes
Line 
1function [z,F] = binaryindex(n,m,Fin)
2
3% Number of bits needed
4k=ceil(log2(m));
5
6w=2^k;
7b=dec2bin(0:w-1);
8for i = 1:m
9    pattern{i} = str2num(strrep(strrep(b(i,:),'1',' 1 '),'0',' 0 '));
10end
11
12z=sdpvar(n,m,'full');
13delta = binvar(n,k,'full');
14F=set([]);
15M=m;
16for iz=1:n
17    for jz=1:m
18        t=0;
19        for i = 1:length(pattern{jz})
20            if pattern{jz}(i)
21                F=F+set( -M*delta(iz,i) <= z(iz,jz) <= M*delta(iz,i));
22                t=t+1-delta(iz,i);
23            else
24                F=F+set( -M*(1-delta(iz,i)) <=z(iz,jz)<= M*(1-delta(iz,i)));
25                t=t+delta(iz,i);
26            end
27        end
28        F=F+set(-M*t <= z(iz,jz)-1 <= M*t);       
29    end
30end
31F=F+set(m-1 >= delta*2.^((k-1:-1:0)'));
32
33if nargin == 3
34    F= F+Fin;
35end
Note: See TracBrowser for help on using the repository browser.