Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 181562

Submitted on 25 Dec 2012 by Alfonso Nieto-Castanon

Correct

27Size
Leading solution size is 24.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
x = 5;
y_correct = repmat( [1 1 1 0 0 0 1 0 1 0 0 0 1 1 1],[30,1]);;
assert(isequal(barEncoder(x),y_correct))
ans =
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
     1     1     1     0     0     0     1     0     1     0     0     0     1     1     1
2
Pass
 
%%
x = 12;
y_correct = repmat( [1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 1],[30,1]);;
assert(isequal(barEncoder(x),y_correct))
ans =
  Columns 1 through 16
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
     1     1     1     0     0     0     1     0     0     0     1     0     1     0     1     1
  Column 17
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
     1
3
Pass
 
%%
x = 135;
y_correct = repmat( [1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1],[30,1]);;
assert(isequal(barEncoder(x),y_correct))
ans =
  Columns 1 through 16
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
     1     1     1     0     0     0     1     0     1     0     1     0     1     0     1     0
  Columns 17 through 29
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
     0     0     1     0     0     0     1     0     0     0     1     1     1
4
Pass
 
%%
x = 2;
y_correct = repmat( [1 1 1 0 0 0 1 0 1 1 1],[30,1]);
assert(isequal(barEncoder(x),y_correct))
ans =
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
     1     1     1     0     0     0     1     0     1     1     1
5
Pass
 
%%
x = 22;
y_correct = repmat( [1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1],[30,1]);
assert(isequal(barEncoder(x),y_correct))
ans =
  Columns 1 through 16
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
     1     1     1     0     0     0     1     0     1     0     0     0     1     0     0     0
  Columns 17 through 21
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1
     1     0     1     1     1