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 77522

Submitted on 17 Apr 2012 by @bmtran

Correct

30Size
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
 
%%
P = [1 0; 1 2];
m1 = eye(2);
m2 = ones(2);
M_correct = [1 0 0 0; 0 1 0 0; 1 0 1 1; 0 1 1 1];
assert(isequal(patchworkMatrix(P,m1,m2),M_correct))

                    
2
Pass
 
%%
P = 2-eye(4);
m1 = eye(2);
m2 = ones(2);
M_correct = [1 0 1 1 1 1 1 1; 0 1 1 1 1 1 1 1; 1 1 1 0 1 1 1 1; 1 1 0 1 1 1 1 1; 1 1 1 1 1 0 1 1; 1 1 1 1 0 1 1 1; 1 1 1 1 1 1 1 0; 1 1 1 1 1 1 0 1];
assert(isequal(patchworkMatrix(P,m1,m2),M_correct))

                    
3
Pass
 
%%
P = [2 3 2 3];
m1 = 1;
m2 = 2;
m3 = 3;
M_correct = [2 3 2 3];
assert(isequal(patchworkMatrix(P,m1,m2,m3),M_correct))

                    
4
Pass
 
%%
P = [6 5; 4 3; 2 1];
m1 = rand(2,3);
m2 = rand(2,3);
m3 = rand(2,3);
m4 = rand(2,3);
m5 = rand(2,3);
m6 = rand(2,3);
M_correct = [m6 m5; m4 m3; m2 m1];
assert(isequal(patchworkMatrix(P,m1,m2,m3,m4,m5,m6),M_correct))

                    
5
Pass
 
%%
P = zeros(2);
m1 = rand(3,2);
m2 = rand(3,2);
m3 = rand(3,2);
m4 = rand(3,2);
m5 = rand(3,2);
m6 = rand(3,2);
M_correct = zeros(6,4);
assert(isequal(patchworkMatrix(P,m1,m2,m3,m4,m5,m6),M_correct))

                    
6
Pass
 
%%
P = [];
m = cell(100);
assert(isempty(patchworkMatrix(P,m{:})))