N=400;
D=16;

rand('state',0);
m1=[0 0 1 0;
    0 1 1 1;
    0 0 1 0;
    0 0 0 0]; 

m2=[0 1 0 0;
    0 1 0 0;
    0 1 0 0;
    0 1 0 0];

m3=[1 1 1 1;
    0 0 0 0;
    0 0 0 0;
    0 0 0 0];

m4=[1 0 0 0;
    0 1 0 0;
    0 0 1 0;
    0 0 0 1]; 

m5=[0 0 0 0;
    0 0 0 0;
    1 1 0 0;
    1 1 0 0]; 

m6=[1 1 1 1;
    1 0 0 1;
    1 0 0 1;
    1 1 1 1]; 

m7=[0 0 0 0;
    0 1 1 0;
    0 1 1 0;
    0 0 0 0];

m8=[0 0 0 1;
    0 0 0 1;
    0 0 0 1;
    0 0 0 1];

nfeat=8;
rr=0.5+rand(nfeat,1)*0.5;
mut=[rr(1)*m1(:) rr(2)*m2(:) rr(3)*m3(:) rr(4)*m4(:) rr(5)*m5(:) ...
rr(6)*m6(:) rr(7)*m7(:) rr(8)*m8(:)]';
s=rand(N,nfeat)<0.3;

% Generate Data

Y=s*mut+randn(N,D)*0.1;

set(gcf,'Color',[0.2 0.4 0.6]);

colormap gray;
k=0;
nrows=10;
for i=1:nrows;
for j=1:nrows;
k=k+1;
subplot(nrows,nrows,k);
imagesc(reshape(Y(k,:),4,4),[0 2]);
axis off;
axis equal;
end;
end;






