{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":3068,"title":"Pattern Recognition 1 - Known Unit Length","description":"You will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\r\n\r\nFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\r\n\r\nThis problem is a precursor to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays Problem 3069\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays Problem 3070\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a precursor to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\"\u003eProblem 3069\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\"\u003eProblem 3070\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition1(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 1 2 3 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 2];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 100 1 10 100];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'abcabcadcabcabc';\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 3 1 2 3 2 2 3];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'hi hi hi ';\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabc';\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'hi ho hi ';\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 10 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = 'abcabcabcabcabc';\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 100 1 10 10 1 10 100];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 1 2 2];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = 'hi ho hi ';\r\n\t\ttf = 0;\r\nend\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 1 2 3 2 2 3];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 100 1 10 100 1 10 100];\r\n\t\ttf = 1;\r\n\tcase 3\r\n\t\tarray = [1 2 3 1 2 3 2 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 1 2 2];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition1(array),tf))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":74,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:19:11.000Z","updated_at":"2026-03-16T14:08:57.000Z","published_at":"2015-03-08T03:19:11.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a precursor to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3069\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3070\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3069,"title":"Pattern Recognition 2 - Known Unit Length, Various Array Length (including cell arrays)","description":"You will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\r\n\r\nFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\r\n\r\nThis problem is a follow-on to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length Problem 3068\u003e and a precursor to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays Problem 3070\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a follow-on to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\"\u003eProblem 3068\u003c/a\u003e and a precursor to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\"\u003eProblem 3070\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition2(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 1 2 3 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 2 1];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 1 2 2 2 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 100 1 10 100 1 10];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','d2','r2','c3po','r2','d2','c3po'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'hi hi hi hi';\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabcab';\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po','r2'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 3 3 2 3 1 2 3];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cbe','fg','ab','edc','fg'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabea';\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 100 10 1 10 100 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'hi hi him';\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po'};\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = 'hi hi him';\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 3 3 2 3 1 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 1 2 2 1];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 3 2 3 1 2 3 1 2];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 100 10 1 10 100 1 10 100 1];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 1 2 2 1];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition2(array),tf))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":56,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:28:05.000Z","updated_at":"2026-03-16T14:24:23.000Z","published_at":"2015-03-08T03:28:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a follow-on to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3068\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and a precursor to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3070\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3070,"title":"Pattern Recognition 3 - Variable Unit and Array Length (including cell arrays)","description":"You will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\r\n\r\nFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\r\n\r\nThis problem is a follow-on to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length Problem 3068\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays Problem 3069\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a follow-on to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\"\u003eProblem 3068\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\"\u003eProblem 3069\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition3(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 4 5 1 2 3 4 5 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 1 2 2 1 2 1 2];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 1 2 2 2 1 2];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [0.1 1 10 100 1000 10000];\r\narray = repmat(array,[1,5]);\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','d2','r2','c3po','r2','d2','c3po'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'hi ho hi ho hi ho hi';\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'a':'z';\r\narray = repmat(array,[1,5]);\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'c3','po','r2','d2','c3','po','r2','d2','c3','po','r2','d2','c3','po','r2'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 3 3 2 3 1 2 3 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cbe','fg','ab','edc','fg'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabea';\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 100 10 1 10 100 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'hi hi him';\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [ones(1,40) zeros(1,20) ones(1,40) zeros(1,20) ones(1,40)];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [-1:9 -1:4 -1:2 -1:9 -1:4 -1:2 -1:9 -1:4 -1:2 -1:9];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po'};\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = 'hi hi him';\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 3 3 1 2 3 1 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 4 1 2 2 4 1];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 3 2 3 1 2 3 1 2];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 1 10 100 1 10 100 1];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 4 5 1 2 2 4 5 1];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = {'ab','cde','ab','cde','fg','ab','cde','ab','cde','fg','ab','cde','ab','cde','fg'};\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition3(array),tf))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":58,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:41:45.000Z","updated_at":"2026-03-16T14:26:39.000Z","published_at":"2015-03-08T03:41:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a follow-on to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3068\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3069\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":3068,"title":"Pattern Recognition 1 - Known Unit Length","description":"You will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\r\n\r\nFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\r\n\r\nThis problem is a precursor to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays Problem 3069\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays Problem 3070\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a precursor to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\"\u003eProblem 3069\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\"\u003eProblem 3070\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition1(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 1 2 3 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 2];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 100 1 10 100];\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'abcabcadcabcabc';\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 3 1 2 3 2 2 3];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'hi hi hi ';\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabc';\r\ntf = 1;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = 'hi ho hi ';\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 10 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = 'abcabcabcabcabc';\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 100 1 10 10 1 10 100];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 1 2 2];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = 'hi ho hi ';\r\n\t\ttf = 0;\r\nend\r\nassert(isequal(pattern_recognition1(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 1 2 3 2 2 3];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 100 1 10 100 1 10 100];\r\n\t\ttf = 1;\r\n\tcase 3\r\n\t\tarray = [1 2 3 1 2 3 2 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 1 2 2];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition1(array),tf))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":74,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:19:11.000Z","updated_at":"2026-03-16T14:08:57.000Z","published_at":"2015-03-08T03:19:11.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will have a length that is a multiple of three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 1 2 3 1 2 3] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array. On the other hand, [1 2 3 1 2 3 2 2 3] would return false, since the last block is [2 2 3] rather than [1 2 3], as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a precursor to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3069\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3070\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3069,"title":"Pattern Recognition 2 - Known Unit Length, Various Array Length (including cell arrays)","description":"You will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\r\n\r\nFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\r\n\r\nThis problem is a follow-on to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length Problem 3068\u003e and a precursor to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays Problem 3070\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a follow-on to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\"\u003eProblem 3068\u003c/a\u003e and a precursor to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\"\u003eProblem 3070\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition2(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 1 2 3 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 2 1];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 1 2 2 2 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 10 100 1 10 100 1 10 100 1 10];\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','d2','r2','c3po','r2','d2','c3po'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'hi hi hi hi';\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabcab';\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po','r2'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 2 3 3 2 3 1 2 3];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cbe','fg','ab','edc','fg'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabea';\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 100 10 1 10 100 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = 'hi hi him';\r\ntf = 0;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po'};\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = 'hi hi him';\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 3 3 2 3 1 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 1 2 2 1];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition2(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 3 2 3 1 2 3 1 2];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 100 10 1 10 100 1 10 100 1];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 1 2 2 1];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition2(array),tf))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":56,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:28:05.000Z","updated_at":"2026-03-16T14:24:23.000Z","published_at":"2015-03-08T03:28:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the known pattern unit length is three. Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 1 2 3 1 2 3 1] would return true since the first block ([1 2 3]) is strictly repeated through the remainder of the array (including the last 1). On the other hand, [1 2 3 3 2 3 1 2 3] would return false, since the second block is [3 2 3] rather than [1 2 3], as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a follow-on to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3068\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and a precursor to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3070-pattern-recognition-3-variable-unit-and-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3070\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3070,"title":"Pattern Recognition 3 - Variable Unit and Array Length (including cell arrays)","description":"You will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\r\n\r\nFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\r\n\r\nThis problem is a follow-on to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length Problem 3068\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays Problem 3069\u003e.","description_html":"\u003cp\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\u003c/p\u003e\u003cp\u003eFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\u003c/p\u003e\u003cp\u003eThis problem is a follow-on to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\"\u003eProblem 3068\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\"\u003eProblem 3069\u003c/a\u003e.\u003c/p\u003e","function_template":"function [tf] = pattern_recognition3(array)\r\n\r\ntf = 0;\r\n\r\nend\r\n","test_suite":"%%\r\narray = [1 2 3 4 5 1 2 3 4 5 1 2 3];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 2 1 2 1 2 2 1 2 1 2];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 1 2 2 2 1 2];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [0.1 1 10 100 1000 10000];\r\narray = repmat(array,[1,5]);\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'c3po','r2','d2','c3po','d2','r2','c3po','r2','d2','c3po'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'hi ho hi ho hi ho hi';\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'a':'z';\r\narray = repmat(array,[1,5]);\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'c3','po','r2','d2','c3','po','r2','d2','c3','po','r2','d2','c3','po','r2'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 2 3 3 2 3 1 2 3 1];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cbe','fg','ab','edc','fg'};\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'abcabcabcabcabcabea';\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [1 10 100 1 100 10 1 10 100 1 10 100];\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = 'hi hi him';\r\ntf = 0;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = {'ab','cde','fg','ab','cde','fg','ab','cde','fg'};\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [ones(1,40) zeros(1,20) ones(1,40) zeros(1,20) ones(1,40)];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\narray = [-1:9 -1:4 -1:2 -1:9 -1:4 -1:2 -1:9 -1:4 -1:2 -1:9];\r\ntf = 1;\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = {'c3po','r2','d2','c3po','r2','d2','c3po','r2','d2','c3po'};\r\n\t\ttf = 1;\r\n\tcase 2\r\n\t\tarray = 'hi hi him';\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 3 3 1 2 3 1 2 3];\r\n\t\ttf = 0;\r\n\tcase 4\r\n\t\tarray = [1 2 2 4 1 2 2 4 1];\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition3(array),tf))\r\n\r\n%%\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tarray = [1 2 3 3 2 3 1 2 3 1 2];\r\n\t\ttf = 0;\r\n\tcase 2\r\n\t\tarray = [1 10 100 1 10 1 10 100 1 10 100 1];\r\n\t\ttf = 0;\r\n\tcase 3\r\n\t\tarray = [1 2 2 4 5 1 2 2 4 5 1];\r\n\t\ttf = 1;\r\n\tcase 4\r\n\t\tarray = {'ab','cde','ab','cde','fg','ab','cde','ab','cde','fg','ab','cde','ab','cde','fg'};\r\n\t\ttf = 1;\r\nend\r\nassert(isequal(pattern_recognition3(array),tf))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":58,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":30,"created_at":"2015-03-08T03:41:45.000Z","updated_at":"2026-03-16T14:26:39.000Z","published_at":"2015-03-08T03:41:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be given various arrays, composed of numbers or strings, including cell arrays of strings. For this problem, the pattern unit length is variable, ranging from three to half the array length (the unit will be completely repeated at least once). Write a function to determine if the supplied array is a strict repeating pattern. The array will not necessarily have a length that is a multiple of the unit length.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, [1 2 3 4 5 1 2 3 4 5 1 2 3] would return true since the first block (1:5) is strictly repeated through the remainder of the array (including the last [1 2 3]). On the other hand, 'abcabcabcabcabcabea' would return false, since the last complete block is 'abe' rather than 'abc', as indicated by the first block.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is a follow-on to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3068-pattern-recognition-1-known-unit-length\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3068\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3069-pattern-recognition-2-known-unit-length-various-array-length-including-cell-arrays\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 3069\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"recognition\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"recognition\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"recognition\"","","\"","recognition","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1022e24620\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1022e24580\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1022e23cc0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1022e248a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1022e24800\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1022e24760\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1022e246c0\u003e":"tag:\"recognition\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1022e246c0\u003e":"tag:\"recognition\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"recognition\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"recognition\"","","\"","recognition","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1022e24620\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1022e24580\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1022e23cc0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1022e248a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1022e24800\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1022e24760\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1022e246c0\u003e":"tag:\"recognition\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1022e246c0\u003e":"tag:\"recognition\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":3068,"difficulty_rating":"easy-medium"},{"id":3069,"difficulty_rating":"easy-medium"},{"id":3070,"difficulty_rating":"medium"}]}}