{"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":703,"title":"Usage of varargout","description":"This Challenge is to demonstrate usage of varargout.\r\n\r\nOutput a cell array using varargout of magic squares of size 1 thru n.\r\n\r\n*Input:* n, Number of magic squares. Squares are of size 1:n\r\n\r\n*Output:* m_out, a cell array of n magic arrays \r\n\r\nn=3\r\n\r\nm_out{1} = [1] , \r\n\r\nm_out{2)=[1 3;4 2];  \r\n\r\nm_out{3}=[8 1 6;3 5 7; 4 9 2]\r\n\r\n\r\nThis Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge, \u003chttp://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705 lasttry05\u003e \r\n\r\n","description_html":"\u003cp\u003eThis Challenge is to demonstrate usage of varargout.\u003c/p\u003e\u003cp\u003eOutput a cell array using varargout of magic squares of size 1 thru n.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e n, Number of magic squares. Squares are of size 1:n\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e m_out, a cell array of n magic arrays\u003c/p\u003e\u003cp\u003en=3\u003c/p\u003e\u003cp\u003em_out{1} = [1] ,\u003c/p\u003e\u003cp\u003em_out{2)=[1 3;4 2];\u003c/p\u003e\u003cp\u003em_out{3}=[8 1 6;3 5 7; 4 9 2]\u003c/p\u003e\u003cp\u003eThis Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge, \u003ca href=\"http://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705\"\u003elasttry05\u003c/a\u003e\u003c/p\u003e","function_template":"function varargout = use_varargout(n)\r\n  varargout{1}=1;\r\nend","test_suite":"%%\r\nn=5;\r\n[m_out{1:n}] = use_varargout(n)\r\n\r\nPass=true;\r\nfor i=1:n\r\n Pass=Pass \u0026\u0026 isequal(m_out{i},magic(i));\r\nend\r\n\r\nm_out{n}\r\n\r\nassert(isequal(Pass,1))\r\n\r\n%%\r\nn=7;\r\n[m_out{1:n}] = use_varargout(n)\r\n\r\nPass=true;\r\nfor i=1:n\r\n Pass=Pass \u0026\u0026 isequal(m_out{i},magic(i));\r\nend\r\n\r\nm_out{n}\r\n\r\nassert(isequal(Pass,1))\r\n\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":76,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-05-20T05:58:03.000Z","updated_at":"2026-02-20T14:22:30.000Z","published_at":"2012-11-09T06:37:46.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\u003eThis Challenge is to demonstrate usage of varargout.\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\u003eOutput a cell array using varargout of magic squares of size 1 thru n.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e n, Number of magic squares. Squares are of size 1:n\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e m_out, a cell array of n magic arrays\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\u003en=3\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\u003em_out{1} = [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\u003em_out{2)=[1 3;4 2];\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\u003em_out{3}=[8 1 6;3 5 7; 4 9 2]\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 Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge,\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=\\\"http://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705\\\"\u003e\u003cw:r\u003e\u003cw:t\u003elasttry05\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":2668,"title":"Assign matrix elements to separate variables","description":"Given an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\r\n\r\n*Example*\r\n\r\nIf\r\n\r\n  A = [1 2 3 4];\r\n\r\nthen\r\n\r\n  [B,C,D,E] = matsplit(A)\r\n\r\nreturns\r\n\r\n  B = 1\r\n  C = 2\r\n  D = 3\r\n  E = 4","description_html":"\u003cp\u003eGiven an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample\u003c/b\u003e\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1 2 3 4];\r\n\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[B,C,D,E] = matsplit(A)\r\n\u003c/pre\u003e\u003cp\u003ereturns\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eB = 1\r\nC = 2\r\nD = 3\r\nE = 4\r\n\u003c/pre\u003e","function_template":"function varargout = matsplit(A)\r\n  varargout = {};\r\nend","test_suite":"%%\r\nA = rand;\r\nB = matsplit(A);\r\nassert(isequal(B,A))\r\n\r\n%%\r\nA = 1:4;\r\n[B,C,D,E] = matsplit(A);\r\nassert(isequal(B,1))\r\nassert(isequal(C,2))\r\nassert(isequal(D,3))\r\nassert(isequal(E,4))\r\n\r\n%%\r\nA = magic(3);\r\n[B,C,D] = matsplit(A);\r\nassert(isequal(B,8))\r\nassert(isequal(C,3))\r\nassert(isequal(D,4))\r\n\r\n%%\r\nA = eye(4);\r\n[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = matsplit(A);\r\nassert(isequal(B,1))\r\nassert(isequal(C,0))\r\nassert(isequal(D,0))\r\nassert(isequal(E,0))\r\nassert(isequal(F,0))\r\nassert(isequal(G,1))\r\nassert(isequal(H,0))\r\nassert(isequal(I,0))\r\nassert(isequal(J,0))\r\nassert(isequal(K,0))\r\nassert(isequal(L,1))\r\nassert(isequal(M,0))\r\nassert(isequal(N,0))\r\nassert(isequal(O,0))\r\nassert(isequal(P,0))\r\nassert(isequal(Q,1))\r\n\r\n%%\r\nA = fliplr(primes(100))';\r\nB = matsplit(A);\r\nassert(isequal(B,97))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":45,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-13T05:55:22.000Z","updated_at":"2025-12-08T15:02:37.000Z","published_at":"2014-11-13T05:55:47.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 an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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\u003eIf\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[A = [1 2 3 4];]]\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\u003ethen\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[[B,C,D,E] = matsplit(A)]]\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\u003ereturns\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[B = 1\\nC = 2\\nD = 3\\nE = 4]]\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":2669,"title":"Assign matrix rows/columns to separate variables","description":"This is a slight variant of \u003chttp://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables this problem\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\r\n\r\n*Example*\r\n\r\nIf\r\n\r\n  A = [1  2  3  4\r\n       5  6  7  8\r\n       9 10 11 12];\r\n\r\nthen\r\n\r\n  [B,C,D] = matsplit(A,1)\r\n  [E,F] = matsplit(A,2)\r\n\r\nreturns\r\n\r\n  B = [1 5 9]';\r\n  C = [2 6 10]';\r\n  D = [3 7 11]';\r\n  E = [1 2 3 4];\r\n  F = [5 6 7 8];","description_html":"\u003cp\u003eThis is a slight variant of \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables\"\u003ethis problem\u003c/a\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample\u003c/b\u003e\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1  2  3  4\r\n     5  6  7  8\r\n     9 10 11 12];\r\n\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[B,C,D] = matsplit(A,1)\r\n[E,F] = matsplit(A,2)\r\n\u003c/pre\u003e\u003cp\u003ereturns\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eB = [1 5 9]';\r\nC = [2 6 10]';\r\nD = [3 7 11]';\r\nE = [1 2 3 4];\r\nF = [5 6 7 8];\r\n\u003c/pre\u003e","function_template":"function varargout = matsplit(A,dim)\r\n  varargout = {};\r\nend","test_suite":"%%\r\nA = rand;\r\nB = matsplit(A,1);\r\nC = matsplit(A,2);\r\nassert(isequal(B,A))\r\nassert(isequal(C,A))\r\n\r\n%%\r\nrng default\r\nA = randi(100,3,3);\r\n[B,C,D] = matsplit(A,1);\r\n[E,F,G] = matsplit(A,2);\r\nassert(isequal(B,[82;91;13]))\r\nassert(isequal(C,[92;64;10]))\r\nassert(isequal(D,[28;55;96]))\r\nassert(isequal(E,[82,92,28]))\r\nassert(isequal(F,[91,64,55]))\r\nassert(isequal(G,[13,10,96]))\r\n\r\n%%\r\nA = hankel(1:20);\r\nB = matsplit(A,1);\r\nC = matsplit(A,2);\r\nassert(isequal(C,1:20))\r\nassert(isequal(B(:),C(:)))\r\n\r\n%%\r\nA = toeplitz(1:4);\r\n[B,C,D,E] = matsplit(A,2);\r\nassert(isequal(B,[1 2 3 4]))\r\nassert(isequal(C,[2 1 2 3]))\r\nassert(isequal(D,[3 2 1 2]))\r\nassert(isequal(E,[4 3 2 1]))\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":39,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-13T06:18:31.000Z","updated_at":"2025-12-07T16:58:01.000Z","published_at":"2014-11-13T06:18:31.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\u003eThis is a slight variant of\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ethis problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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\u003eIf\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[A = [1  2  3  4\\n     5  6  7  8\\n     9 10 11 12];]]\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\u003ethen\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[[B,C,D] = matsplit(A,1)\\n[E,F] = matsplit(A,2)]]\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\u003ereturns\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[B = [1 5 9]';\\nC = [2 6 10]';\\nD = [3 7 11]';\\nE = [1 2 3 4];\\nF = [5 6 7 8];]]\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":1040,"title":"Create a Cell array of month-end date strings within a provided date range","description":"This is a variation of \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range Get an array of month-ends by T.D.\u003e where the result is now a cell array of date strings.\r\n\r\nFor example:\r\n\r\n  date_start = datenum('10 Nov 2010');\r\n  date_end   = datenum('10 Feb 2011');\r\n  [dates_me{1:3}]   = month_ends(date_start, date_end); \r\n  dates_me\r\n  dates_me = \r\n     '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\r\n  \r\n  The test suite uses\r\n  [y{1:3}]=month_ends(d1,d2);\r\n  \r\n  Is there a way to receive variable number of cells from a function call?\r\n\r\nJ.G pointed out a better Cell array implementation that does not use varargout.\r\nThis revised version is \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range Challenge 1044\u003e\r\n\r\nRelated challenge is \u003chttp://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout Usage of varargout\u003e.\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eThis is a variation of \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range\"\u003eGet an array of month-ends by T.D.\u003c/a\u003e where the result is now a cell array of date strings.\u003c/p\u003e\u003cp\u003eFor example:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003edate_start = datenum('10 Nov 2010');\r\ndate_end   = datenum('10 Feb 2011');\r\n[dates_me{1:3}]   = month_ends(date_start, date_end); \r\ndates_me\r\ndates_me = \r\n   '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eThe test suite uses\r\n[y{1:3}]=month_ends(d1,d2);\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eIs there a way to receive variable number of cells from a function call?\r\n\u003c/pre\u003e\u003cp\u003eJ.G pointed out a better Cell array implementation that does not use varargout.\r\nThis revised version is \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range\"\u003eChallenge 1044\u003c/a\u003e\u003c/p\u003e\u003cp\u003eRelated challenge is \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout\"\u003eUsage of varargout\u003c/a\u003e.\u003c/p\u003e","function_template":"function varargout = month_ends(date_start,date_end)\r\n y{1}=datestr(date_start,'dd-mmm-yyyy');\r\n y{2}=datestr(date_start,'dd-mmm-yyyy');\r\n y{3}=datestr(date_start,'dd-mmm-yyyy');\r\n  \r\n varargout=y;\r\n    \r\nend\r\n","test_suite":"%%\r\nd1 = datenum('10-Nov-2010');\r\nd2 = datenum('10-Feb-2011');\r\ny_correct = {'30-Nov-2010','31-Dec-2010','31-Jan-2011'};\r\n[y{1:3}]=month_ends(d1,d2);\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nd1 = datenum('31-Jan-2000');\r\nd2 = datenum('10-Apr-2000');\r\ny_correct = {'31-Jan-2000','29-Feb-2000','31-Mar-2000'};\r\n[y{1:3}]=month_ends(d1,d2);\r\nassert(isequal(y,y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-11-20T03:39:37.000Z","updated_at":"2025-12-31T11:52:42.000Z","published_at":"2012-11-20T03:52:32.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\u003eThis is a variation of\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGet an array of month-ends by T.D.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e where the result is now a cell array of date strings.\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:\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[date_start = datenum('10 Nov 2010');\\ndate_end   = datenum('10 Feb 2011');\\n[dates_me{1:3}]   = month_ends(date_start, date_end); \\ndates_me\\ndates_me = \\n   '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\\n\\nThe test suite uses\\n[y{1:3}]=month_ends(d1,d2);\\n\\nIs there a way to receive variable number of cells from a function call?]]\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\u003eJ.G pointed out a better Cell array implementation that does not use varargout. This revised version is\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChallenge 1044\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003eRelated challenge is\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eUsage of varargout\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":2641,"title":"Dispatch and collect ","description":"Write a function that dispatches the single argument _x_ to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\r\n\r\nFor example, given\r\n\r\n  x = [1 2 6\r\n       2 7 5 \r\n       3 5 4];\r\n  [bounds, positions] = dispatch(x, @min, @max)\r\n\r\nbounds and position should be:\r\n\r\n  bounds = [1 2 4       %first output of min\r\n            3 7 6]      %first output of max\r\n  positions = [1 1 3    %second output of min \r\n               3 2 1]   %second output of max\r\n\r\n\r\n","description_html":"\u003cp\u003eWrite a function that dispatches the single argument \u003ci\u003ex\u003c/i\u003e to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\u003c/p\u003e\u003cp\u003eFor example, given\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex = [1 2 6\r\n     2 7 5 \r\n     3 5 4];\r\n[bounds, positions] = dispatch(x, @min, @max)\r\n\u003c/pre\u003e\u003cp\u003ebounds and position should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ebounds = [1 2 4       %first output of min\r\n          3 7 6]      %first output of max\r\npositions = [1 1 3    %second output of min \r\n             3 2 1]   %second output of max\r\n\u003c/pre\u003e","function_template":"function varargout = dispatch(x, varargin)\r\n  varargout{:} = [];\r\nend","test_suite":"%% 2 outputs, 2 functions\r\nx = [1 2 6; 2 7 5; 3 5 4];\r\nco1 = [1 2 4; 3 7 6];\r\nco2 = [1 1 3; 3 2 1];\r\n[o1, o2] = dispatch(x, @min, @max);\r\nassert(isequal(o1, co1) \u0026\u0026 isequal(o2, co2))\r\n\r\n%% 1 output, 3 functions\r\nx = randi(50, 20);\r\nco = [mean(x); mode(x); median(x)];\r\nassert(isequal(co, dispatch(x, @mean, @mode, @median)))\r\n\r\n%%  1 output, 5 functions\r\nx=10;\r\nco = [zeros(x);ones(x);eye(x);magic(x);pascal(x)];\r\nassert(isequal(co, dispatch(x, @zeros, @ones, @eye, @magic, @pascal)))\r\n\r\n%% 4 outputs, 1 function\r\nco = randi(50, 1, 4);\r\n[o1, o2, o3, o4] = dispatch(zeros(co), @size);\r\nassert(isequal([o1 o2 o3 o4], co))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":999,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-10-23T08:30:27.000Z","updated_at":"2025-09-22T07:23:48.000Z","published_at":"2014-10-23T10:00:26.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\u003eWrite a function that dispatches the single argument\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\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, given\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[x = [1 2 6\\n     2 7 5 \\n     3 5 4];\\n[bounds, positions] = dispatch(x, @min, @max)]]\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\u003ebounds and position should be:\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[bounds = [1 2 4       %first output of min\\n          3 7 6]      %first output of max\\npositions = [1 1 3    %second output of min \\n             3 2 1]   %second output of max]]\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":703,"title":"Usage of varargout","description":"This Challenge is to demonstrate usage of varargout.\r\n\r\nOutput a cell array using varargout of magic squares of size 1 thru n.\r\n\r\n*Input:* n, Number of magic squares. Squares are of size 1:n\r\n\r\n*Output:* m_out, a cell array of n magic arrays \r\n\r\nn=3\r\n\r\nm_out{1} = [1] , \r\n\r\nm_out{2)=[1 3;4 2];  \r\n\r\nm_out{3}=[8 1 6;3 5 7; 4 9 2]\r\n\r\n\r\nThis Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge, \u003chttp://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705 lasttry05\u003e \r\n\r\n","description_html":"\u003cp\u003eThis Challenge is to demonstrate usage of varargout.\u003c/p\u003e\u003cp\u003eOutput a cell array using varargout of magic squares of size 1 thru n.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e n, Number of magic squares. Squares are of size 1:n\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e m_out, a cell array of n magic arrays\u003c/p\u003e\u003cp\u003en=3\u003c/p\u003e\u003cp\u003em_out{1} = [1] ,\u003c/p\u003e\u003cp\u003em_out{2)=[1 3;4 2];\u003c/p\u003e\u003cp\u003em_out{3}=[8 1 6;3 5 7; 4 9 2]\u003c/p\u003e\u003cp\u003eThis Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge, \u003ca href=\"http://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705\"\u003elasttry05\u003c/a\u003e\u003c/p\u003e","function_template":"function varargout = use_varargout(n)\r\n  varargout{1}=1;\r\nend","test_suite":"%%\r\nn=5;\r\n[m_out{1:n}] = use_varargout(n)\r\n\r\nPass=true;\r\nfor i=1:n\r\n Pass=Pass \u0026\u0026 isequal(m_out{i},magic(i));\r\nend\r\n\r\nm_out{n}\r\n\r\nassert(isequal(Pass,1))\r\n\r\n%%\r\nn=7;\r\n[m_out{1:n}] = use_varargout(n)\r\n\r\nPass=true;\r\nfor i=1:n\r\n Pass=Pass \u0026\u0026 isequal(m_out{i},magic(i));\r\nend\r\n\r\nm_out{n}\r\n\r\nassert(isequal(Pass,1))\r\n\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":76,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-05-20T05:58:03.000Z","updated_at":"2026-02-20T14:22:30.000Z","published_at":"2012-11-09T06:37:46.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\u003eThis Challenge is to demonstrate usage of varargout.\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\u003eOutput a cell array using varargout of magic squares of size 1 thru n.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e n, Number of magic squares. Squares are of size 1:n\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e m_out, a cell array of n magic arrays\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\u003en=3\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\u003em_out{1} = [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\u003em_out{2)=[1 3;4 2];\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\u003em_out{3}=[8 1 6;3 5 7; 4 9 2]\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 Challenge is based upon a varargout implementation in Alfonso Castanon's top entry in the Knot's Challenge,\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=\\\"http://www.mathworks.com/matlabcentral/contest/contests/38/submissions/69705\\\"\u003e\u003cw:r\u003e\u003cw:t\u003elasttry05\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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":2668,"title":"Assign matrix elements to separate variables","description":"Given an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\r\n\r\n*Example*\r\n\r\nIf\r\n\r\n  A = [1 2 3 4];\r\n\r\nthen\r\n\r\n  [B,C,D,E] = matsplit(A)\r\n\r\nreturns\r\n\r\n  B = 1\r\n  C = 2\r\n  D = 3\r\n  E = 4","description_html":"\u003cp\u003eGiven an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample\u003c/b\u003e\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1 2 3 4];\r\n\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[B,C,D,E] = matsplit(A)\r\n\u003c/pre\u003e\u003cp\u003ereturns\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eB = 1\r\nC = 2\r\nD = 3\r\nE = 4\r\n\u003c/pre\u003e","function_template":"function varargout = matsplit(A)\r\n  varargout = {};\r\nend","test_suite":"%%\r\nA = rand;\r\nB = matsplit(A);\r\nassert(isequal(B,A))\r\n\r\n%%\r\nA = 1:4;\r\n[B,C,D,E] = matsplit(A);\r\nassert(isequal(B,1))\r\nassert(isequal(C,2))\r\nassert(isequal(D,3))\r\nassert(isequal(E,4))\r\n\r\n%%\r\nA = magic(3);\r\n[B,C,D] = matsplit(A);\r\nassert(isequal(B,8))\r\nassert(isequal(C,3))\r\nassert(isequal(D,4))\r\n\r\n%%\r\nA = eye(4);\r\n[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q] = matsplit(A);\r\nassert(isequal(B,1))\r\nassert(isequal(C,0))\r\nassert(isequal(D,0))\r\nassert(isequal(E,0))\r\nassert(isequal(F,0))\r\nassert(isequal(G,1))\r\nassert(isequal(H,0))\r\nassert(isequal(I,0))\r\nassert(isequal(J,0))\r\nassert(isequal(K,0))\r\nassert(isequal(L,1))\r\nassert(isequal(M,0))\r\nassert(isequal(N,0))\r\nassert(isequal(O,0))\r\nassert(isequal(P,0))\r\nassert(isequal(Q,1))\r\n\r\n%%\r\nA = fliplr(primes(100))';\r\nB = matsplit(A);\r\nassert(isequal(B,97))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":45,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-13T05:55:22.000Z","updated_at":"2025-12-08T15:02:37.000Z","published_at":"2014-11-13T05:55:47.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 an input array, return each element of the array as a separate variable. If the number of output arguments (k) is less than the number of array elements, only return the first k elements.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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\u003eIf\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[A = [1 2 3 4];]]\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\u003ethen\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[[B,C,D,E] = matsplit(A)]]\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\u003ereturns\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[B = 1\\nC = 2\\nD = 3\\nE = 4]]\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":2669,"title":"Assign matrix rows/columns to separate variables","description":"This is a slight variant of \u003chttp://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables this problem\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\r\n\r\n*Example*\r\n\r\nIf\r\n\r\n  A = [1  2  3  4\r\n       5  6  7  8\r\n       9 10 11 12];\r\n\r\nthen\r\n\r\n  [B,C,D] = matsplit(A,1)\r\n  [E,F] = matsplit(A,2)\r\n\r\nreturns\r\n\r\n  B = [1 5 9]';\r\n  C = [2 6 10]';\r\n  D = [3 7 11]';\r\n  E = [1 2 3 4];\r\n  F = [5 6 7 8];","description_html":"\u003cp\u003eThis is a slight variant of \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables\"\u003ethis problem\u003c/a\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExample\u003c/b\u003e\u003c/p\u003e\u003cp\u003eIf\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eA = [1  2  3  4\r\n     5  6  7  8\r\n     9 10 11 12];\r\n\u003c/pre\u003e\u003cp\u003ethen\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[B,C,D] = matsplit(A,1)\r\n[E,F] = matsplit(A,2)\r\n\u003c/pre\u003e\u003cp\u003ereturns\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eB = [1 5 9]';\r\nC = [2 6 10]';\r\nD = [3 7 11]';\r\nE = [1 2 3 4];\r\nF = [5 6 7 8];\r\n\u003c/pre\u003e","function_template":"function varargout = matsplit(A,dim)\r\n  varargout = {};\r\nend","test_suite":"%%\r\nA = rand;\r\nB = matsplit(A,1);\r\nC = matsplit(A,2);\r\nassert(isequal(B,A))\r\nassert(isequal(C,A))\r\n\r\n%%\r\nrng default\r\nA = randi(100,3,3);\r\n[B,C,D] = matsplit(A,1);\r\n[E,F,G] = matsplit(A,2);\r\nassert(isequal(B,[82;91;13]))\r\nassert(isequal(C,[92;64;10]))\r\nassert(isequal(D,[28;55;96]))\r\nassert(isequal(E,[82,92,28]))\r\nassert(isequal(F,[91,64,55]))\r\nassert(isequal(G,[13,10,96]))\r\n\r\n%%\r\nA = hankel(1:20);\r\nB = matsplit(A,1);\r\nC = matsplit(A,2);\r\nassert(isequal(C,1:20))\r\nassert(isequal(B(:),C(:)))\r\n\r\n%%\r\nA = toeplitz(1:4);\r\n[B,C,D,E] = matsplit(A,2);\r\nassert(isequal(B,[1 2 3 4]))\r\nassert(isequal(C,[2 1 2 3]))\r\nassert(isequal(D,[3 2 1 2]))\r\nassert(isequal(E,[4 3 2 1]))\r\n\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":39,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-11-13T06:18:31.000Z","updated_at":"2025-12-07T16:58:01.000Z","published_at":"2014-11-13T06:18:31.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\u003eThis is a slight variant of\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/2668-assign-matrix-elements-to-separate-variables\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ethis problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Given an input array, return each row/column of the array as a separate variable. The second input variable determines whether to split on columns (dim=1) or rows (dim=2). If the number of output arguments (k) is less than the corresponding array size, only return the first k rows/columns.\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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample\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\u003eIf\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[A = [1  2  3  4\\n     5  6  7  8\\n     9 10 11 12];]]\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\u003ethen\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[[B,C,D] = matsplit(A,1)\\n[E,F] = matsplit(A,2)]]\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\u003ereturns\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[B = [1 5 9]';\\nC = [2 6 10]';\\nD = [3 7 11]';\\nE = [1 2 3 4];\\nF = [5 6 7 8];]]\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":1040,"title":"Create a Cell array of month-end date strings within a provided date range","description":"This is a variation of \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range Get an array of month-ends by T.D.\u003e where the result is now a cell array of date strings.\r\n\r\nFor example:\r\n\r\n  date_start = datenum('10 Nov 2010');\r\n  date_end   = datenum('10 Feb 2011');\r\n  [dates_me{1:3}]   = month_ends(date_start, date_end); \r\n  dates_me\r\n  dates_me = \r\n     '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\r\n  \r\n  The test suite uses\r\n  [y{1:3}]=month_ends(d1,d2);\r\n  \r\n  Is there a way to receive variable number of cells from a function call?\r\n\r\nJ.G pointed out a better Cell array implementation that does not use varargout.\r\nThis revised version is \u003chttp://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range Challenge 1044\u003e\r\n\r\nRelated challenge is \u003chttp://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout Usage of varargout\u003e.\r\n\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eThis is a variation of \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range\"\u003eGet an array of month-ends by T.D.\u003c/a\u003e where the result is now a cell array of date strings.\u003c/p\u003e\u003cp\u003eFor example:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003edate_start = datenum('10 Nov 2010');\r\ndate_end   = datenum('10 Feb 2011');\r\n[dates_me{1:3}]   = month_ends(date_start, date_end); \r\ndates_me\r\ndates_me = \r\n   '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eThe test suite uses\r\n[y{1:3}]=month_ends(d1,d2);\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eIs there a way to receive variable number of cells from a function call?\r\n\u003c/pre\u003e\u003cp\u003eJ.G pointed out a better Cell array implementation that does not use varargout.\r\nThis revised version is \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range\"\u003eChallenge 1044\u003c/a\u003e\u003c/p\u003e\u003cp\u003eRelated challenge is \u003ca href=\"http://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout\"\u003eUsage of varargout\u003c/a\u003e.\u003c/p\u003e","function_template":"function varargout = month_ends(date_start,date_end)\r\n y{1}=datestr(date_start,'dd-mmm-yyyy');\r\n y{2}=datestr(date_start,'dd-mmm-yyyy');\r\n y{3}=datestr(date_start,'dd-mmm-yyyy');\r\n  \r\n varargout=y;\r\n    \r\nend\r\n","test_suite":"%%\r\nd1 = datenum('10-Nov-2010');\r\nd2 = datenum('10-Feb-2011');\r\ny_correct = {'30-Nov-2010','31-Dec-2010','31-Jan-2011'};\r\n[y{1:3}]=month_ends(d1,d2);\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nd1 = datenum('31-Jan-2000');\r\nd2 = datenum('10-Apr-2000');\r\ny_correct = {'31-Jan-2000','29-Feb-2000','31-Mar-2000'};\r\n[y{1:3}]=month_ends(d1,d2);\r\nassert(isequal(y,y_correct))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":1,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-11-20T03:39:37.000Z","updated_at":"2025-12-31T11:52:42.000Z","published_at":"2012-11-20T03:52:32.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\u003eThis is a variation of\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/1039-get-an-array-of-month-ends-in-a-date-range\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eGet an array of month-ends by T.D.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e where the result is now a cell array of date strings.\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:\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[date_start = datenum('10 Nov 2010');\\ndate_end   = datenum('10 Feb 2011');\\n[dates_me{1:3}]   = month_ends(date_start, date_end); \\ndates_me\\ndates_me = \\n   '30-Nov-2010' '31-Dec-2010' '31-Jan-2011'\\n\\nThe test suite uses\\n[y{1:3}]=month_ends(d1,d2);\\n\\nIs there a way to receive variable number of cells from a function call?]]\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\u003eJ.G pointed out a better Cell array implementation that does not use varargout. This revised version is\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/1044-create-a-cell-array-of-month-end-date-strings-within-a-date-range\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eChallenge 1044\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\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\u003eRelated challenge is\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=\\\"http://www.mathworks.com/matlabcentral/cody/problems/703-usage-of-varargout\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eUsage of varargout\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":2641,"title":"Dispatch and collect ","description":"Write a function that dispatches the single argument _x_ to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\r\n\r\nFor example, given\r\n\r\n  x = [1 2 6\r\n       2 7 5 \r\n       3 5 4];\r\n  [bounds, positions] = dispatch(x, @min, @max)\r\n\r\nbounds and position should be:\r\n\r\n  bounds = [1 2 4       %first output of min\r\n            3 7 6]      %first output of max\r\n  positions = [1 1 3    %second output of min \r\n               3 2 1]   %second output of max\r\n\r\n\r\n","description_html":"\u003cp\u003eWrite a function that dispatches the single argument \u003ci\u003ex\u003c/i\u003e to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\u003c/p\u003e\u003cp\u003eFor example, given\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ex = [1 2 6\r\n     2 7 5 \r\n     3 5 4];\r\n[bounds, positions] = dispatch(x, @min, @max)\r\n\u003c/pre\u003e\u003cp\u003ebounds and position should be:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ebounds = [1 2 4       %first output of min\r\n          3 7 6]      %first output of max\r\npositions = [1 1 3    %second output of min \r\n             3 2 1]   %second output of max\r\n\u003c/pre\u003e","function_template":"function varargout = dispatch(x, varargin)\r\n  varargout{:} = [];\r\nend","test_suite":"%% 2 outputs, 2 functions\r\nx = [1 2 6; 2 7 5; 3 5 4];\r\nco1 = [1 2 4; 3 7 6];\r\nco2 = [1 1 3; 3 2 1];\r\n[o1, o2] = dispatch(x, @min, @max);\r\nassert(isequal(o1, co1) \u0026\u0026 isequal(o2, co2))\r\n\r\n%% 1 output, 3 functions\r\nx = randi(50, 20);\r\nco = [mean(x); mode(x); median(x)];\r\nassert(isequal(co, dispatch(x, @mean, @mode, @median)))\r\n\r\n%%  1 output, 5 functions\r\nx=10;\r\nco = [zeros(x);ones(x);eye(x);magic(x);pascal(x)];\r\nassert(isequal(co, dispatch(x, @zeros, @ones, @eye, @magic, @pascal)))\r\n\r\n%% 4 outputs, 1 function\r\nco = randi(50, 1, 4);\r\n[o1, o2, o3, o4] = dispatch(zeros(co), @size);\r\nassert(isequal([o1 o2 o3 o4], co))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":999,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2014-10-23T08:30:27.000Z","updated_at":"2025-09-22T07:23:48.000Z","published_at":"2014-10-23T10:00:26.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\u003eWrite a function that dispatches the single argument\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:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e to multiple function handles (varargin) and concatenates vertically the respective outputs of these functions. All the functions are guaranteed to return the same numbers of outputs of the same size.\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, given\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[x = [1 2 6\\n     2 7 5 \\n     3 5 4];\\n[bounds, positions] = dispatch(x, @min, @max)]]\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\u003ebounds and position should be:\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[bounds = [1 2 4       %first output of min\\n          3 7 6]      %first output of max\\npositions = [1 1 3    %second output of min \\n             3 2 1]   %second output of max]]\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:\"varargout\"","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:\"varargout\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"varargout\"","","\"","varargout","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3de0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3d40\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3480\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e4060\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3fc0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3f20\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fa2b56e3e80\u003e":"tag:\"varargout\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3e80\u003e":"tag:\"varargout\""},"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:\"varargout\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"varargout\"","","\"","varargout","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3de0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3d40\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3480\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e4060\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3fc0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fa2b56e3f20\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fa2b56e3e80\u003e":"tag:\"varargout\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fa2b56e3e80\u003e":"tag:\"varargout\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":703,"difficulty_rating":"easy"},{"id":2668,"difficulty_rating":"easy-medium"},{"id":2669,"difficulty_rating":"easy-medium"},{"id":1040,"difficulty_rating":"easy-medium"},{"id":2641,"difficulty_rating":"easy-medium"}]}}