Cody

Problem 591. Create a patchwork matrix

Solution 1938740

Submitted on 17 Sep 2019
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Fail
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))

M = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in patchworkMatrix (line 7) M((x-1)*s(1)+(1:s(1)),(y-1)*s(2)+(1:s(2))) = varargin{max(P(i),1)}*logical(P(i)); Error in Test1 (line 5) assert(isequal(patchworkMatrix(P,m1,m2),M_correct))

2   Fail
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))

M = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Assertion failed.

3   Fail
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))

M = 0 0 0 0 0 2 3 0

Assertion failed.

4   Fail
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))

M = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9493 0.8349 0.7287 0.6163 0.3785 0.5543 0.6055 0.8669 0.4498 0.2872 0.8297 0.2186 0.8224 0.7025 0.3027 0.6081 0.0242 0.1938 0.7389 0.9900 0.8505 0.7654 0.4672 0.2665 0.2050 0.7018 0.3320 0.1147 0.5319 0.6522 0.9719 0.4963 0.8584 0.9096 0.4972 0.9608

Assertion failed.

5   Fail
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))

M = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in patchworkMatrix (line 7) M((x-1)*s(1)+(1:s(1)),(y-1)*s(2)+(1:s(2))) = varargin{max(P(i),1)}*logical(P(i)); Error in Test5 (line 9) assert(isequal(patchworkMatrix(P,m1,m2,m3,m4,m5,m6),M_correct))

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

M = []