Cody

# Problem 591. Create a patchwork matrix

Solution 1938738

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)+(0:s(1)),(y-1)*s(2)+(0:s(2))) = varargin{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

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)+(0:s(1)),(y-1)*s(2)+(0:s(2))) = varargin{P(i)}; Error in Test2 (line 5) assert(isequal(patchworkMatrix(P,m1,m2),M_correct))

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

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)+(0:s(1)),(y-1)*s(2)+(0:s(2))) = varargin{P(i)}; Error in Test3 (line 6) assert(isequal(patchworkMatrix(P,m1,m2,m3),M_correct))

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

Unable to perform assignment because the size of the left side is 3-by-4 and the size of the right side is 2-by-3. Error in patchworkMatrix (line 7) M((x-1)*s(1)+(0:s(1)),(y-1)*s(2)+(0:s(2))) = varargin{P(i)}; Error in Test4 (line 9) assert(isequal(patchworkMatrix(P,m1,m2,m3,m4,m5,m6),M_correct))

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

Array indices must be positive integers or logical values. Error in patchworkMatrix (line 7) M((x-1)*s(1)+(0:s(1)),(y-1)*s(2)+(0:s(2))) = varargin{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 = []