Cody

# Problem 44350. Breaking Out of the Matrix

Solution 2799691

Submitted on 6 Aug 2020
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
M=[1 4 7 10; 2 5 8 11; 3 6 9 12]; R=2;C=3; X(:,:,1) =[1 4 7 ; 2 5 8]; X(:,:,2) =[2 5 8 ; 3 6 9]; X(:,:,3) =[4 7 10 ; 5 8 11]; X(:,:,4) =[5 8 11 ; 6 9 12]; assert(isequal(BreakTheMatrix(M,R,C),X))

y(:,:,1) = 1 3 5 2 4 6 y(:,:,2) = 7 9 11 8 10 12

Assertion failed.

2   Pass
x=1:ceil(35+25*rand());r=1;c=1; M=BreakTheMatrix(x,r,c); assert(all(arrayfun(@(y) (M(:,:,y)==y),1:numel(x))))

y(:,:,1) = 1 y(:,:,2) = 2 y(:,:,3) = 3 y(:,:,4) = 4 y(:,:,5) = 5 y(:,:,6) = 6 y(:,:,7) = 7 y(:,:,8) = 8 y(:,:,9) = 9 y(:,:,10) = 10 y(:,:,11) = 11 y(:,:,12) = 12 y(:,:,13) = 13 y(:,:,14) = 14 y(:,:,15) = 15 y(:,:,16) = 16 y(:,:,17) = 17 y(:,:,18) = 18 y(:,:,19) = 19 y(:,:,20) = 20 y(:,:,21) = 21 y(:,:,22) = 22 y(:,:,23) = 23 y(:,:,24) = 24 y(:,:,25) = 25 y(:,:,26) = 26 y(:,:,27) = 27 y(:,:,28) = 28 y(:,:,29) = 29 y(:,:,30) = 30 y(:,:,31) = 31 y(:,:,32) = 32 y(:,:,33) = 33 y(:,:,34) = 34 y(:,:,35) = 35 y(:,:,36) = 36

3   Fail
x=eye(7);r=2;c=2; M=BreakTheMatrix(x,r,c); ids=[1 8 15 22 29 36]; urs=ids(1:5)+1; lls=urs+5; z=setxor(1:size(M,3),[ids urs lls]); a1=arrayfun(@(a) isequal(M(:,:,a),eye(2)),ids); a2=arrayfun(@(a) isequal(M(:,:,a),[0 1 ; 0 0]),urs); a3=arrayfun(@(a) isequal(M(:,:,a),[0 0 ; 1 0]),lls); a4=arrayfun(@(a) isequal(M(:,:,a),zeros(2)),z); assert(all([a1 a2 a3 a4]))

Error using reshape Size arguments must be real integers. Error in BreakTheMatrix (line 2) y = reshape(M,R,C,size(M,1)*size(M,2)/R/C) Error in Test3 (line 2) M=BreakTheMatrix(x,r,c);

4   Pass
u=ceil(10*rand())+4; x=magic(u);r=u;c=u; M=BreakTheMatrix(x,r,c); assert(isequal(M,x))

y = 93 108 123 138 153 168 1 16 31 46 61 76 91 107 122 137 152 167 13 15 30 45 60 75 90 92 121 136 151 166 12 14 29 44 59 74 89 104 106 135 150 165 11 26 28 43 58 73 88 103 105 120 149 164 10 25 27 42 57 72 87 102 117 119 134 163 9 24 39 41 56 71 86 101 116 118 133 148 8 23 38 40 55 70 85 100 115 130 132 147 162 22 37 52 54 69 84 99 114 129 131 146 161 7 36 51 53 68 83 98 113 128 143 145 160 6 21 50 65 67 82 97 112 127 142 144 159 5 20 35 64 66 81 96 111 126 141 156 158 4 19 34 49 78 80 95 110 125 140 155 157 3 18 33 48 63 79 94 109 124 139 154 169 2 17 32 47 62 77

5   Fail
temp=ceil(8*rand)+3; x=ones(temp);r=2;c=2; M=BreakTheMatrix(x,r,c); assert(size(M,3)==(temp-1)^2); assert(all(arrayfun(@(a) isequal(M(:,:,a),ones(2)),1:size(M,3))))

Error using reshape Size arguments must be real integers. Error in BreakTheMatrix (line 2) y = reshape(M,R,C,size(M,1)*size(M,2)/R/C) Error in Test5 (line 3) M=BreakTheMatrix(x,r,c);

6   Pass
x=eye(7);r=7;c=7; assert(isequal(x,BreakTheMatrix(x,r,c)))

y = 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1