{"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":42790,"title":"Full combinations","description":"Given n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \"increasing\" ordering; see examples below.  \r\n\r\n* Example 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output: \r\n\r\n\r\n    y = ['ac'\r\n         'ad'\r\n         'ae'\r\n         'bc'\r\n         'bd'\r\n         'be'] \r\n\r\n\r\n* Example 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output: \r\n\r\n    y = [0 0 0\r\n         0 0 1\r\n         0 1 0\r\n         0 1 1\r\n         1 0 0\r\n         1 0 1\r\n         1 1 0\r\n         1 1 1]\r\n\r\n\r\nYou may assume that all inputs are valid vectors whose lengths are at least 1. \r\n \r\n\r\nNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely *ff2n* (for binary case) and *fullfact* (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\r\n","description_html":"\u003cp\u003eGiven n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \"increasing\" ordering; see examples below.\u003c/p\u003e\u003cul\u003e\u003cli\u003eExample 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output:\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e    y = ['ac'\r\n         'ad'\r\n         'ae'\r\n         'bc'\r\n         'bd'\r\n         'be'] \u003c/pre\u003e\u003cul\u003e\u003cli\u003eExample 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output:\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e    y = [0 0 0\r\n         0 0 1\r\n         0 1 0\r\n         0 1 1\r\n         1 0 0\r\n         1 0 1\r\n         1 1 0\r\n         1 1 1]\u003c/pre\u003e\u003cp\u003eYou may assume that all inputs are valid vectors whose lengths are at least 1.\u003c/p\u003e\u003cp\u003eNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely \u003cb\u003eff2n\u003c/b\u003e (for binary case) and \u003cb\u003efullfact\u003c/b\u003e (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\u003c/p\u003e","function_template":"function y = myfullfact(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx1 = [0 1]; x2 = [0 1]; x3 = [0 1];\r\ny_correct = [0 0 0\r\n             0 0 1\r\n             0 1 0\r\n             0 1 1\r\n             1 0 0\r\n             1 0 1\r\n             1 1 0\r\n             1 1 1];\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%%\r\nx1 = [0 1]; x2 = [-1]; x3 = [-1 0 1];\r\ny_correct = [0  -1  -1\r\n             0  -1   0\r\n             0  -1   1\r\n             1  -1  -1\r\n             1  -1   0\r\n             1  -1   1];\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%% \r\nx1 = 0; x2 = 2; x3 = 4; x4 = 8; x5 = 7; x6 = 6; x7 = 4; x8 = 1; x9 = 1; x10 = 0;\r\ny_correct = [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];\r\nassert(isequal(myfullfact(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10),y_correct))\r\n\r\n%%\r\nx1 = 'ab'; x2 = 'cde';\r\ny_correct = ['ac'\r\n             'ad'\r\n             'ae'\r\n             'bc'\r\n             'bd'\r\n             'be'];\r\nassert(isequal(myfullfact(x1,x2),y_correct))\r\n\r\n%%\r\nx1 = 'a'; x2 = 'a'; x3 = 'z';\r\ny_correct = 'aaz';\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%%\r\nx1 = '!@#'; x2 = '23';\r\ny_correct = ['!2'\r\n             '!3'\r\n             '@2'\r\n             '@3'\r\n             '#2'\r\n             '#3'];\r\nassert(isequal(myfullfact(x1,x2),y_correct))\r\n\r\n%%\r\nx1 = '@#'; x2 = 'm'; x3 = 'a'; x4 = 't'; x5 = 'l'; x6 = 'a'; x7 = 'b'; x8 = '$%*';\r\ny_correct = ['@matlab$'\r\n             '@matlab%'\r\n             '@matlab*'\r\n             '#matlab$'\r\n             '#matlab%'\r\n             '#matlab*'];\r\nassert(isequal(myfullfact(x1,x2,x3,x4,x5,x6,x7,x8),y_correct))\r\n\r\n%%\r\n% A manual implementation used to validate other solutions. Please be advised that generalization of this is straightforward but inefficient in terms of Cody size. To get a solution with possibly smaller size, try different ideas please.  \r\nfor iter = 1:20\r\n    a = randi(10,5,1);\r\n    x = arrayfun(@(x)(1:x).',a,'un',0);\r\n    [x1,x2,x3,x4,x5] = deal(x{:});\r\n    y1 = repelem(x1, prod(a(2:5)), 1);\r\n    y2 = repmat(repelem(x2, prod(a(3:5)), 1), a(1), 1);\r\n    y3 = repmat(repelem(x3, prod(a(4:5)), 1), prod(a(1:2)), 1);\r\n    y4 = repmat(repelem(x4, a(5), 1), prod(a(1:3)), 1);\r\n    y5 = repmat(x5, prod(a(1:4)), 1); \r\n    y_correct = [y1, y2, y3, y4, y5];\r\n    assert(isequal(myfullfact(x1,x2,x3,x4,x5),y_correct));\r\nend","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2016-03-29T21:03:54.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-03-29T19:44:39.000Z","updated_at":"2025-12-05T13:12:00.000Z","published_at":"2016-03-29T19:47:42.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\u003eGiven n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \\\"increasing\\\" ordering; see examples below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    y = ['ac'\\n         'ad'\\n         'ae'\\n         'bc'\\n         'bd'\\n         'be']]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    y = [0 0 0\\n         0 0 1\\n         0 1 0\\n         0 1 1\\n         1 0 0\\n         1 0 1\\n         1 1 0\\n         1 1 1]]]\u003e\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\u003eYou may assume that all inputs are valid vectors whose lengths are at least 1.\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\u003eNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eff2n\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (for binary case) and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efullfact\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\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":42790,"title":"Full combinations","description":"Given n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \"increasing\" ordering; see examples below.  \r\n\r\n* Example 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output: \r\n\r\n\r\n    y = ['ac'\r\n         'ad'\r\n         'ae'\r\n         'bc'\r\n         'bd'\r\n         'be'] \r\n\r\n\r\n* Example 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output: \r\n\r\n    y = [0 0 0\r\n         0 0 1\r\n         0 1 0\r\n         0 1 1\r\n         1 0 0\r\n         1 0 1\r\n         1 1 0\r\n         1 1 1]\r\n\r\n\r\nYou may assume that all inputs are valid vectors whose lengths are at least 1. \r\n \r\n\r\nNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely *ff2n* (for binary case) and *fullfact* (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\r\n","description_html":"\u003cp\u003eGiven n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \"increasing\" ordering; see examples below.\u003c/p\u003e\u003cul\u003e\u003cli\u003eExample 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output:\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e    y = ['ac'\r\n         'ad'\r\n         'ae'\r\n         'bc'\r\n         'bd'\r\n         'be'] \u003c/pre\u003e\u003cul\u003e\u003cli\u003eExample 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output:\u003c/li\u003e\u003c/ul\u003e\u003cpre\u003e    y = [0 0 0\r\n         0 0 1\r\n         0 1 0\r\n         0 1 1\r\n         1 0 0\r\n         1 0 1\r\n         1 1 0\r\n         1 1 1]\u003c/pre\u003e\u003cp\u003eYou may assume that all inputs are valid vectors whose lengths are at least 1.\u003c/p\u003e\u003cp\u003eNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely \u003cb\u003eff2n\u003c/b\u003e (for binary case) and \u003cb\u003efullfact\u003c/b\u003e (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\u003c/p\u003e","function_template":"function y = myfullfact(x)\r\n  y = x;\r\nend","test_suite":"%%\r\nx1 = [0 1]; x2 = [0 1]; x3 = [0 1];\r\ny_correct = [0 0 0\r\n             0 0 1\r\n             0 1 0\r\n             0 1 1\r\n             1 0 0\r\n             1 0 1\r\n             1 1 0\r\n             1 1 1];\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%%\r\nx1 = [0 1]; x2 = [-1]; x3 = [-1 0 1];\r\ny_correct = [0  -1  -1\r\n             0  -1   0\r\n             0  -1   1\r\n             1  -1  -1\r\n             1  -1   0\r\n             1  -1   1];\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%% \r\nx1 = 0; x2 = 2; x3 = 4; x4 = 8; x5 = 7; x6 = 6; x7 = 4; x8 = 1; x9 = 1; x10 = 0;\r\ny_correct = [x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];\r\nassert(isequal(myfullfact(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10),y_correct))\r\n\r\n%%\r\nx1 = 'ab'; x2 = 'cde';\r\ny_correct = ['ac'\r\n             'ad'\r\n             'ae'\r\n             'bc'\r\n             'bd'\r\n             'be'];\r\nassert(isequal(myfullfact(x1,x2),y_correct))\r\n\r\n%%\r\nx1 = 'a'; x2 = 'a'; x3 = 'z';\r\ny_correct = 'aaz';\r\nassert(isequal(myfullfact(x1,x2,x3),y_correct))\r\n\r\n%%\r\nx1 = '!@#'; x2 = '23';\r\ny_correct = ['!2'\r\n             '!3'\r\n             '@2'\r\n             '@3'\r\n             '#2'\r\n             '#3'];\r\nassert(isequal(myfullfact(x1,x2),y_correct))\r\n\r\n%%\r\nx1 = '@#'; x2 = 'm'; x3 = 'a'; x4 = 't'; x5 = 'l'; x6 = 'a'; x7 = 'b'; x8 = '$%*';\r\ny_correct = ['@matlab$'\r\n             '@matlab%'\r\n             '@matlab*'\r\n             '#matlab$'\r\n             '#matlab%'\r\n             '#matlab*'];\r\nassert(isequal(myfullfact(x1,x2,x3,x4,x5,x6,x7,x8),y_correct))\r\n\r\n%%\r\n% A manual implementation used to validate other solutions. Please be advised that generalization of this is straightforward but inefficient in terms of Cody size. To get a solution with possibly smaller size, try different ideas please.  \r\nfor iter = 1:20\r\n    a = randi(10,5,1);\r\n    x = arrayfun(@(x)(1:x).',a,'un',0);\r\n    [x1,x2,x3,x4,x5] = deal(x{:});\r\n    y1 = repelem(x1, prod(a(2:5)), 1);\r\n    y2 = repmat(repelem(x2, prod(a(3:5)), 1), a(1), 1);\r\n    y3 = repmat(repelem(x3, prod(a(4:5)), 1), prod(a(1:2)), 1);\r\n    y4 = repmat(repelem(x4, a(5), 1), prod(a(1:3)), 1);\r\n    y5 = repmat(x5, prod(a(1:4)), 1); \r\n    y_correct = [y1, y2, y3, y4, y5];\r\n    assert(isequal(myfullfact(x1,x2,x3,x4,x5),y_correct));\r\nend","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":12569,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2016-03-29T21:03:54.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-03-29T19:44:39.000Z","updated_at":"2025-12-05T13:12:00.000Z","published_at":"2016-03-29T19:47:42.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\u003eGiven n input vectors x1, x2, …, xn, generate a p*n matrix y whose rows contain all element-wise combinations of the vectors x1, x2, …, xn, where p = numel(x1)*numel(x2)*…* numel(xn). The rows of y are organized in an \\\"increasing\\\" ordering; see examples below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample 1 (character array, n = 2): Input: x1 = 'ab'; x2 = 'cde'; Output:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    y = ['ac'\\n         'ad'\\n         'ae'\\n         'bc'\\n         'bd'\\n         'be']]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample 2 (numeric array, n = 3): Input: x1 = [0 1], x2 = [0 1]; x3 = [0 1]; Output:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    y = [0 0 0\\n         0 0 1\\n         0 1 0\\n         0 1 1\\n         1 0 0\\n         1 0 1\\n         1 1 0\\n         1 1 1]]]\u003e\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\u003eYou may assume that all inputs are valid vectors whose lengths are at least 1.\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\u003eNote: The Statistics and Machine Learning toolbox provides two useful functions for full factorial design, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eff2n\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (for binary case) and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efullfact\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (for general cases). However, they do not directly accomplish the task in Example 1. The purpose of this problem is to create a toolbox independent function to achieve our goal. Have fun!\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:\"fullfact\"","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:\"fullfact\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"fullfact\"","","\"","fullfact","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f1f0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f150\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0e890\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f470\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f3d0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f330\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f76f7c0f290\u003e":"tag:\"fullfact\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f290\u003e":"tag:\"fullfact\""},"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:\"fullfact\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"fullfact\"","","\"","fullfact","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f1f0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f150\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0e890\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f470\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f3d0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f76f7c0f330\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f76f7c0f290\u003e":"tag:\"fullfact\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f76f7c0f290\u003e":"tag:\"fullfact\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":42790,"difficulty_rating":"easy-medium"}]}}