Cody

# Problem 59. Pattern matching

Solution 1195536

Submitted on 22 May 2017 by Ayanle Aden
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   Pass
a = [0 1 1 0 -1 1 0 1 0 1 1 0 -1 1 0 1 0 1 0 0 -1 1 0 1 1 2 2 1 0 2 1 2]; b = [2 4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

RowNorm = 1 RowNorm = 1 NaN RowNorm = 1 NaN -1 RowNorm = 1 NaN -1 -1 RowNorm = 1 NaN -1 -1 1 RowNorm = 1 NaN -1 -1 1 -1 RowNorm = 1 NaN -1 -1 1 -1 1 RowNorm = 1 NaN -1 -1 1 -1 1 1 0 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 0 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 0 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN 0 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 0 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 0 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 0 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 0 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 NaN -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 NaN -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 NaN -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 NaN -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 RowNorm = 1 0 -1 -1 1 -1 1 1 0 -1 -1 1 -1 1 1 -1 0 -1 1 -1 1 1 0 -1 -1 1 -1 1 Equal = 1 Equal = 1 1 Equal = 1 1 0 Equal = 1 1 0 1 Equal = 0 1 0 1 b = 2 4

2   Pass
a = [0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 2 3 4 5 6 7]; b = [2]; out = matchPattern(a); assert(isequal(out(:), b(:)))

RowNorm = 1 RowNorm = 1 1 RowNorm = 1 1 1 RowNorm = 1 1 1 1 RowNorm = 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 0 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 0 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 0 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 0 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 0 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 0 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 Equal = 1 Equal = 1 1 Equal = 1 1 0 Equal = 1 1 0 0 Equal = 0 1 0 0 b = 2

3   Pass
a = [0 0 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 2 3 4 5 6 7]; b = [4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

RowNorm = NaN RowNorm = NaN 1 RowNorm = NaN 1 1 RowNorm = NaN 1 1 1 RowNorm = NaN 1 1 1 1 RowNorm = NaN 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 Equal = 1 Equal = 1 0 Equal = 1 0 0 Equal = 1 0 0 1 Equal = 0 0 0 1 b = 4

4   Pass
a = [0 0 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 12 13 140 150 160 1700]; b = [4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

RowNorm = NaN RowNorm = NaN 1 RowNorm = NaN 1 1 RowNorm = NaN 1 1 1 RowNorm = NaN 1 1 1 1 RowNorm = NaN 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 0 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 0 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 0 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 0 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 0 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 0 RowNorm = NaN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 NaN 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 RowNorm = 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 0 1 1 1 1 1 1 Equal = 1 Equal = 1 0 Equal = 1 0 0 Equal = 1 0 0 1 Equal = 0 0 0 1 b = 4

5   Pass
a = [0 1 1 0 1 2 3 4 1 5 5 3 2 3 4 5 6 7 7 9 -4 -1 -1 -12 5 6 9 10]; b = [3 6]; out = matchPattern(a); assert(isequal(out(:), b(:)))

RowNorm = 1 RowNorm = 1 NaN RowNorm = 1 NaN -1 RowNorm = 1 NaN -1 1 0 0 RowNorm = 1 NaN -1 1 1 0 RowNorm = 1 NaN -1 1 1 1 RowNorm = 1 NaN -1 1 1 1 1 0 0 RowNorm = 1 NaN -1 1 1 1 1 NaN 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 0 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 0 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 0 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 0 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 0 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 NaN -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 NaN -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 NaN 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 NaN -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 1 1 1 RowNorm = 1 0 -1 1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 1 1 1 Equal = 1 Equal = 1 0 Equal = 1 0 1 Equal = 1 0 1 0 Equal = 1 0 1 0 0 Equal = 1 0 1 0 0 1 Equal = 1 0 1 0 0 1 0 Equal = 0 0 1 0 0 1 0 b = 3 6