:
%
h1 = num2cell(-(dec2bin(1:15)-'0'),2);
%
h2 = arrayfun(@(i) unique(perms([zeros(1,4-i) ones(1,i)]),'rows'), (1:4)', 'UniformOutput',false);
%'
n = -cellfun(@sum, h1);
%
B = cellfun(@(a,b) [repmat(a,size(b,1),1) b], h1, h2(n), 'UniformOutput',false);
B = cell2mat(B);
:
B =
0 0 0 -1 0 0 0 1
0 0 0 -1 0 0 1 0
0 0 0 -1 0 1 0 0
0 0 0 -1 1 0 0 0
0 0 -1 0 0 0 0 1
0 0 -1 0 0 0 1 0
0 0 -1 0 0 1 0 0
0 0 -1 0 1 0 0 0
0 0 -1 -1 0 0 1 1
0 0 -1 -1 0 1 0 1
0 0 -1 -1 0 1 1 0
0 0 -1 -1 1 0 0 1
0 0 -1 -1 1 0 1 0
0 0 -1 -1 1 1 0 0
0 -1 0 0 0 0 0 1
0 -1 0 0 0 0 1 0
0 -1 0 0 0 1 0 0
0 -1 0 0 1 0 0 0
0 -1 0 -1 0 0 1 1
0 -1 0 -1 0 1 0 1
0 -1 0 -1 0 1 1 0
0 -1 0 -1 1 0 0 1
0 -1 0 -1 1 0 1 0
0 -1 0 -1 1 1 0 0
0 -1 -1 0 0 0 1 1
0 -1 -1 0 0 1 0 1
0 -1 -1 0 0 1 1 0
0 -1 -1 0 1 0 0 1
0 -1 -1 0 1 0 1 0
0 -1 -1 0 1 1 0 0
0 -1 -1 -1 0 1 1 1
0 -1 -1 -1 1 0 1 1
0 -1 -1 -1 1 1 0 1
0 -1 -1 -1 1 1 1 0
-1 0 0 0 0 0 0 1
-1 0 0 0 0 0 1 0
-1 0 0 0 0 1 0 0
-1 0 0 0 1 0 0 0
-1 0 0 -1 0 0 1 1
-1 0 0 -1 0 1 0 1
-1 0 0 -1 0 1 1 0
-1 0 0 -1 1 0 0 1
-1 0 0 -1 1 0 1 0
-1 0 0 -1 1 1 0 0
-1 0 -1 0 0 0 1 1
-1 0 -1 0 0 1 0 1
-1 0 -1 0 0 1 1 0
-1 0 -1 0 1 0 0 1
-1 0 -1 0 1 0 1 0
-1 0 -1 0 1 1 0 0
-1 0 -1 -1 0 1 1 1
-1 0 -1 -1 1 0 1 1
-1 0 -1 -1 1 1 0 1
-1 0 -1 -1 1 1 1 0
-1 -1 0 0 0 0 1 1
-1 -1 0 0 0 1 0 1
-1 -1 0 0 0 1 1 0
-1 -1 0 0 1 0 0 1
-1 -1 0 0 1 0 1 0
-1 -1 0 0 1 1 0 0
-1 -1 0 -1 0 1 1 1
-1 -1 0 -1 1 0 1 1
-1 -1 0 -1 1 1 0 1
-1 -1 0 -1 1 1 1 0
-1 -1 -1 0 0 1 1 1
-1 -1 -1 0 1 0 1 1
-1 -1 -1 0 1 1 0 1
-1 -1 -1 0 1 1 1 0
-1 -1 -1 -1 1 1 1 1