{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.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":"2026-04-16T00: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":963,"title":"We love vectorized solutions.  Problem 1 : remove the row average.","description":"Given a 2-d matrix, remove the row average from each row.  Your solution MUST be vectorized.  The solution will be tested for accuracy AND speed.  Any for loops will make the solution too slow to pass the speed test.\r\n\r\nExample:\r\n\r\n  a = [ 1 2 ; 3 5 ];\r\n  b = remove_average_vectorized(a);\r\n  % b is [ -0.5 0.5 ; -1 1 ];\r\n","description_html":"\u003cp\u003eGiven a 2-d matrix, remove the row average from each row.  Your solution MUST be vectorized.  The solution will be tested for accuracy AND speed.  Any for loops will make the solution too slow to pass the speed test.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ea = [ 1 2 ; 3 5 ];\r\nb = remove_average_vectorized(a);\r\n% b is [ -0.5 0.5 ; -1 1 ];\r\n\u003c/pre\u003e","function_template":"function y = remove_average_vectorized(x)\r\n    % This works but is too slow.\r\n\r\n    for row=1:size(x,1)\r\n      row_average=mean(x(row,:));\r\n      for col=1:size(x,2)\r\n        x(row,col)=x(row,col)-row_average; \r\n      end\r\n    end\r\n  y=x;\r\nend","test_suite":"x = [ 0 1 ; 2 3 ] ;\r\ny_correct = [ -0.5 0.5 ; -0.5 0.5 ] ;\r\ny = remove_average_vectorized(x);\r\nassert(isequal(y,y_correct));\r\n\r\n%% \r\nx = [ 0 1 ; 2 3 ] ;\r\ntimer=tic;\r\ny = remove_average_vectorized(x);\r\nduration=toc(timer)\r\n% You can probably pass this test with a for loop.\r\nassert(duration\u003c0.1,sprintf('Time used %2.3f\\n',duration)); \r\n\r\n%%\r\nx = [ 1:9999 ; 2:10000 ; [ zeros(1,9998) 9999 ]  ];\r\nx = repmat(x,1000,1);\r\ny_correct = [ -4999:1:4999 ; -4999:1:4999 ; [ repmat(-1,1,9998) 9998 ] ];\r\ny_correct = repmat(y_correct,1000,1);\r\ny = remove_average_vectorized(x);\r\nassert(isequal(y,y_correct));\r\n\r\n%%\r\nx = [ 1:9999 ; 2:10000 ; [ zeros(1,9998) 9999 ]  ];\r\nx = repmat(x,1000,1);\r\ntimer=tic;\r\ny = remove_average_vectorized(x);\r\nduration=toc(timer)\r\n% A decent vectorized solution should take around 1 second.\r\nassert(duration\u003c2,sprintf('Time used %2.3f\\n',duration)); ","published":true,"deleted":false,"likes_count":7,"comments_count":12,"created_by":6808,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":887,"test_suite_updated_at":"2012-10-02T05:21:12.000Z","rescore_all_solutions":false,"group_id":12,"created_at":"2012-10-01T06:43:20.000Z","updated_at":"2026-04-16T10:08:09.000Z","published_at":"2012-10-01T07:30:28.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 a 2-d matrix, remove the row average from each row. Your solution MUST be vectorized. The solution will be tested for accuracy AND speed. Any for loops will make the solution too slow to pass the speed test.\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\u003eExample:\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 5 ];\\nb = remove_average_vectorized(a);\\n% b is [ -0.5 0.5 ; -1 1 ];]]\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":767,"title":"Assign numerical values to a structure with 1 field","description":"The aim is to assign values to a multidimensional structure  *without using for-loop or while-loop*\r\n\r\nExample with a structure 2*3:\r\n\r\n  s = repmat(struct('prices', 0), 2, 3);\r\n  data = [11 12 13 ;21 22 23 ];\r\n\r\nThe expected output s2 will be the following structure 2*3:\r\n\r\n   s2(1,1).prices = 11\r\n   s2(1,2).prices = 12\r\n   s2(1,3).prices = 13\r\n   s2(2,1).prices = 21 \r\n   s2(2,2).prices = 22\r\n   s2(2,3).prices = 23\r\n\r\nRules:\r\n\r\n1) Using For-loops or While-loops is prohibited \r\n\r\n2) For this problem the structure will always have *a single field*. In the above example s has an unique field \"prices\". \r\n\r\n3) However the *name of this field can be changed*\r\n\r\nHave fun!","description_html":"\u003cp\u003eThe aim is to assign values to a multidimensional structure  \u003cb\u003ewithout using for-loop or while-loop\u003c/b\u003e\u003c/p\u003e\u003cp\u003eExample with a structure 2*3:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003es = repmat(struct('prices', 0), 2, 3);\r\ndata = [11 12 13 ;21 22 23 ];\r\n\u003c/pre\u003e\u003cp\u003eThe expected output s2 will be the following structure 2*3:\u003c/p\u003e\u003cpre\u003e   s2(1,1).prices = 11\r\n   s2(1,2).prices = 12\r\n   s2(1,3).prices = 13\r\n   s2(2,1).prices = 21 \r\n   s2(2,2).prices = 22\r\n   s2(2,3).prices = 23\u003c/pre\u003e\u003cp\u003eRules:\u003c/p\u003e\u003cp\u003e1) Using For-loops or While-loops is prohibited\u003c/p\u003e\u003cp\u003e2) For this problem the structure will always have \u003cb\u003ea single field\u003c/b\u003e. In the above example s has an unique field \"prices\".\u003c/p\u003e\u003cp\u003e3) However the \u003cb\u003ename of this field can be changed\u003c/b\u003e\u003c/p\u003e\u003cp\u003eHave fun!\u003c/p\u003e","function_template":"function s2= assign_struct(s,data)\r\n s2 = data;\r\nend","test_suite":"%%\r\ns = repmat(struct('prices', 0), 2, 3);\r\ndata = [11 12 13 ;21 22 23 ];\r\n\r\n% solution\r\n s2(1,1).prices = 11\r\n s2(1,2).prices = 12\r\n s2(1,3).prices = 13\r\n s2(2,1).prices = 21 \r\n s2(2,2).prices = 22\r\n s2(2,3).prices = 23\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))\r\n\r\n%% Another fieldname\r\ns = repmat(struct('yo', 0), 2, 3);\r\ndata = [14 12 13 ;87 22 2.3 ];\r\n\r\n% solution\r\n s2(1,1).yo = 14\r\n s2(1,2).yo = 12\r\n s2(1,3).yo = 13\r\n s2(2,1).yo = 87 \r\n s2(2,2).yo = 22\r\n s2(2,3).yo = 2.3\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))\r\n\r\n%% structure bigger with a random matrix\r\ns = repmat(struct('french', 0), 4, 4);\r\ndata = rand(4);\r\n\r\nfor i = 1:4\r\n      for j = 1:4\r\n          s2(i,j).french = data(i,j);\r\n      end\r\nend\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":639,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":"2012-06-15T12:32:22.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-06-15T09:08:05.000Z","updated_at":"2025-12-09T17:36:19.000Z","published_at":"2012-06-15T09:08:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe aim is to assign values to a multidimensional structure \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\u003ewithout using for-loop or while-loop\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\u003eExample with a structure 2*3:\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[s = repmat(struct('prices', 0), 2, 3);\\ndata = [11 12 13 ;21 22 23 ];]]\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\u003eThe expected output s2 will be the following structure 2*3:\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[   s2(1,1).prices = 11\\n   s2(1,2).prices = 12\\n   s2(1,3).prices = 13\\n   s2(2,1).prices = 21 \\n   s2(2,2).prices = 22\\n   s2(2,3).prices = 23]]\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\u003eRules:\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\u003e1) Using For-loops or While-loops is prohibited\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\u003e2) For this problem the structure will always have\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\u003ea single field\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. In the above example s has an unique field \\\"prices\\\".\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\u003e3) However the\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\u003ename of this field can be changed\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\u003eHave 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":963,"title":"We love vectorized solutions.  Problem 1 : remove the row average.","description":"Given a 2-d matrix, remove the row average from each row.  Your solution MUST be vectorized.  The solution will be tested for accuracy AND speed.  Any for loops will make the solution too slow to pass the speed test.\r\n\r\nExample:\r\n\r\n  a = [ 1 2 ; 3 5 ];\r\n  b = remove_average_vectorized(a);\r\n  % b is [ -0.5 0.5 ; -1 1 ];\r\n","description_html":"\u003cp\u003eGiven a 2-d matrix, remove the row average from each row.  Your solution MUST be vectorized.  The solution will be tested for accuracy AND speed.  Any for loops will make the solution too slow to pass the speed test.\u003c/p\u003e\u003cp\u003eExample:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003ea = [ 1 2 ; 3 5 ];\r\nb = remove_average_vectorized(a);\r\n% b is [ -0.5 0.5 ; -1 1 ];\r\n\u003c/pre\u003e","function_template":"function y = remove_average_vectorized(x)\r\n    % This works but is too slow.\r\n\r\n    for row=1:size(x,1)\r\n      row_average=mean(x(row,:));\r\n      for col=1:size(x,2)\r\n        x(row,col)=x(row,col)-row_average; \r\n      end\r\n    end\r\n  y=x;\r\nend","test_suite":"x = [ 0 1 ; 2 3 ] ;\r\ny_correct = [ -0.5 0.5 ; -0.5 0.5 ] ;\r\ny = remove_average_vectorized(x);\r\nassert(isequal(y,y_correct));\r\n\r\n%% \r\nx = [ 0 1 ; 2 3 ] ;\r\ntimer=tic;\r\ny = remove_average_vectorized(x);\r\nduration=toc(timer)\r\n% You can probably pass this test with a for loop.\r\nassert(duration\u003c0.1,sprintf('Time used %2.3f\\n',duration)); \r\n\r\n%%\r\nx = [ 1:9999 ; 2:10000 ; [ zeros(1,9998) 9999 ]  ];\r\nx = repmat(x,1000,1);\r\ny_correct = [ -4999:1:4999 ; -4999:1:4999 ; [ repmat(-1,1,9998) 9998 ] ];\r\ny_correct = repmat(y_correct,1000,1);\r\ny = remove_average_vectorized(x);\r\nassert(isequal(y,y_correct));\r\n\r\n%%\r\nx = [ 1:9999 ; 2:10000 ; [ zeros(1,9998) 9999 ]  ];\r\nx = repmat(x,1000,1);\r\ntimer=tic;\r\ny = remove_average_vectorized(x);\r\nduration=toc(timer)\r\n% A decent vectorized solution should take around 1 second.\r\nassert(duration\u003c2,sprintf('Time used %2.3f\\n',duration)); ","published":true,"deleted":false,"likes_count":7,"comments_count":12,"created_by":6808,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":887,"test_suite_updated_at":"2012-10-02T05:21:12.000Z","rescore_all_solutions":false,"group_id":12,"created_at":"2012-10-01T06:43:20.000Z","updated_at":"2026-04-16T10:08:09.000Z","published_at":"2012-10-01T07:30:28.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 a 2-d matrix, remove the row average from each row. Your solution MUST be vectorized. The solution will be tested for accuracy AND speed. Any for loops will make the solution too slow to pass the speed test.\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\u003eExample:\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 5 ];\\nb = remove_average_vectorized(a);\\n% b is [ -0.5 0.5 ; -1 1 ];]]\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":767,"title":"Assign numerical values to a structure with 1 field","description":"The aim is to assign values to a multidimensional structure  *without using for-loop or while-loop*\r\n\r\nExample with a structure 2*3:\r\n\r\n  s = repmat(struct('prices', 0), 2, 3);\r\n  data = [11 12 13 ;21 22 23 ];\r\n\r\nThe expected output s2 will be the following structure 2*3:\r\n\r\n   s2(1,1).prices = 11\r\n   s2(1,2).prices = 12\r\n   s2(1,3).prices = 13\r\n   s2(2,1).prices = 21 \r\n   s2(2,2).prices = 22\r\n   s2(2,3).prices = 23\r\n\r\nRules:\r\n\r\n1) Using For-loops or While-loops is prohibited \r\n\r\n2) For this problem the structure will always have *a single field*. In the above example s has an unique field \"prices\". \r\n\r\n3) However the *name of this field can be changed*\r\n\r\nHave fun!","description_html":"\u003cp\u003eThe aim is to assign values to a multidimensional structure  \u003cb\u003ewithout using for-loop or while-loop\u003c/b\u003e\u003c/p\u003e\u003cp\u003eExample with a structure 2*3:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003es = repmat(struct('prices', 0), 2, 3);\r\ndata = [11 12 13 ;21 22 23 ];\r\n\u003c/pre\u003e\u003cp\u003eThe expected output s2 will be the following structure 2*3:\u003c/p\u003e\u003cpre\u003e   s2(1,1).prices = 11\r\n   s2(1,2).prices = 12\r\n   s2(1,3).prices = 13\r\n   s2(2,1).prices = 21 \r\n   s2(2,2).prices = 22\r\n   s2(2,3).prices = 23\u003c/pre\u003e\u003cp\u003eRules:\u003c/p\u003e\u003cp\u003e1) Using For-loops or While-loops is prohibited\u003c/p\u003e\u003cp\u003e2) For this problem the structure will always have \u003cb\u003ea single field\u003c/b\u003e. In the above example s has an unique field \"prices\".\u003c/p\u003e\u003cp\u003e3) However the \u003cb\u003ename of this field can be changed\u003c/b\u003e\u003c/p\u003e\u003cp\u003eHave fun!\u003c/p\u003e","function_template":"function s2= assign_struct(s,data)\r\n s2 = data;\r\nend","test_suite":"%%\r\ns = repmat(struct('prices', 0), 2, 3);\r\ndata = [11 12 13 ;21 22 23 ];\r\n\r\n% solution\r\n s2(1,1).prices = 11\r\n s2(1,2).prices = 12\r\n s2(1,3).prices = 13\r\n s2(2,1).prices = 21 \r\n s2(2,2).prices = 22\r\n s2(2,3).prices = 23\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))\r\n\r\n%% Another fieldname\r\ns = repmat(struct('yo', 0), 2, 3);\r\ndata = [14 12 13 ;87 22 2.3 ];\r\n\r\n% solution\r\n s2(1,1).yo = 14\r\n s2(1,2).yo = 12\r\n s2(1,3).yo = 13\r\n s2(2,1).yo = 87 \r\n s2(2,2).yo = 22\r\n s2(2,3).yo = 2.3\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))\r\n\r\n%% structure bigger with a random matrix\r\ns = repmat(struct('french', 0), 4, 4);\r\ndata = rand(4);\r\n\r\nfor i = 1:4\r\n      for j = 1:4\r\n          s2(i,j).french = data(i,j);\r\n      end\r\nend\r\nassert(isequal(assign_struct(s,data),s2))\r\n\r\n\r\n% prevents cheating\r\nfiletext = fileread('assign_struct.m')\r\n assert(isempty(strfind(filetext, 'for')))\r\n assert(isempty(strfind(filetext, 'while')))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":639,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":"2012-06-15T12:32:22.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-06-15T09:08:05.000Z","updated_at":"2025-12-09T17:36:19.000Z","published_at":"2012-06-15T09:08:05.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe aim is to assign values to a multidimensional structure \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\u003ewithout using for-loop or while-loop\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\u003eExample with a structure 2*3:\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[s = repmat(struct('prices', 0), 2, 3);\\ndata = [11 12 13 ;21 22 23 ];]]\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\u003eThe expected output s2 will be the following structure 2*3:\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[   s2(1,1).prices = 11\\n   s2(1,2).prices = 12\\n   s2(1,3).prices = 13\\n   s2(2,1).prices = 21 \\n   s2(2,2).prices = 22\\n   s2(2,3).prices = 23]]\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\u003eRules:\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\u003e1) Using For-loops or While-loops is prohibited\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\u003e2) For this problem the structure will always have\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\u003ea single field\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. In the above example s has an unique field \\\"prices\\\".\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\u003e3) However the\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\u003ename of this field can be changed\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\u003eHave 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:\"vectorized\"","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:\"vectorized\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"vectorized\"","","\"","vectorized","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007faf33186f48\u003e":null,"#\u003cMathWorks::Search::Field:0x00007faf33186ea8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007faf331865e8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007faf331871c8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007faf33187128\u003e":50,"#\u003cMathWorks::Search::Field:0x00007faf33187088\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007faf33186fe8\u003e":"tag:\"vectorized\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007faf33186fe8\u003e":"tag:\"vectorized\""},"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":"cody-search","password":"78X075ddcV44","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:\"vectorized\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"vectorized\"","","\"","vectorized","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007faf33186f48\u003e":null,"#\u003cMathWorks::Search::Field:0x00007faf33186ea8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007faf331865e8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007faf331871c8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007faf33187128\u003e":50,"#\u003cMathWorks::Search::Field:0x00007faf33187088\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007faf33186fe8\u003e":"tag:\"vectorized\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007faf33186fe8\u003e":"tag:\"vectorized\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":963,"difficulty_rating":"easy-medium"},{"id":767,"difficulty_rating":"easy-medium"}]}}