{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.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-06T00: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":540,"title":"Convert hex color specification to MATLAB RGB","description":"Here's something that comes up all the time if you deal with web pages.\r\n\r\nGiven a \u003chttp://www.w3schools.com/html/html_colors.asp hexadecimal color specification\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 1.\r\n\r\nThe input is a string starting with '#'. The output should be a 1-by-3 vector.\r\n\r\nExamples:\r\n\r\n Input  '#0000FF'\r\n Output [0 0 1]\r\n \r\n Input  '#33FF00'\r\n Output [0.2 1 0]","description_html":"\u003cp\u003eHere's something that comes up all the time if you deal with web pages.\u003c/p\u003e\u003cp\u003eGiven a \u003ca href=\"http://www.w3schools.com/html/html_colors.asp\"\u003ehexadecimal color specification\u003c/a\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 1.\u003c/p\u003e\u003cp\u003eThe input is a string starting with '#'. The output should be a 1-by-3 vector.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e Input  '#0000FF'\r\n Output [0 0 1]\u003c/pre\u003e\u003cpre\u003e Input  '#33FF00'\r\n Output [0.2 1 0]\u003c/pre\u003e","function_template":"function rgb = color_hex2rgb(hex)\r\n  rgb = [0 0 0];\r\nend","test_suite":"%%\r\nhex =  '#0000FF';\r\nrgb = [0 0 1];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#33FF00';\r\nrgb = [0.2 1 0];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#FFCCFF';\r\nrgb = [1 0.8 1];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#999999';\r\nrgb = [.6 .6 .6];\r\nassert(isequal(color_hex2rgb(hex),rgb))","published":true,"deleted":false,"likes_count":7,"comments_count":0,"created_by":7,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":256,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-30T18:18:52.000Z","updated_at":"2026-03-09T20:38:06.000Z","published_at":"2012-03-30T18:26: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\u003eHere's something that comes up all the time if you deal with web pages.\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\u003eGiven a\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.w3schools.com/html/html_colors.asp\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehexadecimal color specification\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 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\u003eThe input is a string starting with '#'. The output should be a 1-by-3 vector.\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\u003eExamples:\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[ Input  '#0000FF'\\n Output [0 0 1]\\n\\n Input  '#33FF00'\\n Output [0.2 1 0]]]\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":1948,"title":"Convert this color - RGB Vector to Hex String","description":"Given a 3 element RGB vector corresponding to a color (given by the MATLAB color spec \u003chttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color. \r\n\r\nFor example, given the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :) \r\n\r\n","description_html":"\u003cp\u003eGiven a 3 element RGB vector corresponding to a color (given by the MATLAB color spec \u003ca href = \"http://www.mathworks.com/help/matlab/ref/colorspec.html\"\u003ehttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003c/a\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color.\u003c/p\u003e\u003cp\u003eFor example, given the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :)\u003c/p\u003e","function_template":"function hexString = rgb2hex(rgbColor)\r\n  hexString = rgbColor;\r\nend","test_suite":"%%\r\nx = [0,0,0.0001];\r\ny_correct = '000000';\r\nassert(isequal(rgb2hex(x),y_correct))\r\n\r\n%%\r\nx = [1,1,1];\r\ny_correct = 'FFFFFF';\r\nassert(isequal(rgb2hex(x),y_correct))\r\n\r\n%%\r\nx = [.5,.5,.2];\r\ny_correct = '7F7F33';\r\nassert(isequal(rgb2hex(x),y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":3743,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":139,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T03:34:55.000Z","updated_at":"2026-02-04T11:54:49.000Z","published_at":"2013-10-20T03:34:55.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 3 element RGB vector corresponding to a color (given by the MATLAB color spec\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/help/matlab/ref/colorspec.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color.\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 the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :)\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":877,"title":"What is Title of Cody Challenge 42?","description":"Given a Cody Challenge number return its Title.\r\n\r\n*Input:* Cody Challenge Number\r\n\r\n*Output:* Title of the Cody Challenge\r\n\r\n  1 'Times 2 - START HERE'  \r\n  2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \r\n110 'Make an N-dimensional Multiplication Table'\r\n808 'Hamming Weight - Fast'  \r\n\r\n\r\nFor my methods this was non-trivial due to hyperlink issues.\r\n\r\n Warning:What \"you\" may see is not what you \"get\"\r\n Can anyone \"get\" the title to challenge 4?\r\n My method faces many blocked challenge numbers.\r\n\r\n(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)","description_html":"\u003cp\u003eGiven a Cody Challenge number return its Title.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Cody Challenge Number\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Title of the Cody Challenge\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1 'Times 2 - START HERE'  \r\n2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \r\n110 'Make an N-dimensional Multiplication Table'\r\n808 'Hamming Weight - Fast'  \r\n\u003c/pre\u003e\u003cp\u003eFor my methods this was non-trivial due to hyperlink issues.\u003c/p\u003e\u003cpre\u003e Warning:What \"you\" may see is not what you \"get\"\r\n Can anyone \"get\" the title to challenge 4?\r\n My method faces many blocked challenge numbers.\u003c/pre\u003e\u003cp\u003e(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)\u003c/p\u003e","function_template":"function Title = Cody_Title(n)\r\n  Title='Good Luck';\r\nend","test_suite":"%%\r\nn = 1;\r\nTitle_correct = 'Times 2 - START HERE';\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 2;\r\nTitle_correct = 'Make the vector [1 2 3 4 5 6 7 8 9 10]';\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 110;\r\nTitle_correct = 'Make an N-dimensional Multiplication Table';\r\n% This problem hurts my head\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 808;\r\nTitle_correct = 'Hamming Weight - Fast';\r\nassert(strcmp(Cody_Title(n),Title_correct))","published":true,"deleted":false,"likes_count":6,"comments_count":3,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-08-04T14:40:09.000Z","updated_at":"2025-12-27T16:14:18.000Z","published_at":"2012-08-04T16:25: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\u003eGiven a Cody Challenge number return its Title.\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 Cody Challenge Number\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 Title of the Cody Challenge\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[1 'Times 2 - START HERE'  \\n2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \\n110 'Make an N-dimensional Multiplication Table'\\n808 'Hamming Weight - Fast']]\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\u003eFor my methods this was non-trivial due to hyperlink issues.\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[ Warning:What \\\"you\\\" may see is not what you \\\"get\\\"\\n Can anyone \\\"get\\\" the title to challenge 4?\\n My method faces many blocked challenge numbers.]]\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\u003e(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)\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":51793,"title":"List the titles of Cody problems","description":"Cody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \r\nWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. ","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 135px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 67.5px; transform-origin: 408px 67.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 42px; text-align: left; transform-origin: 385px 42px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 379.608px 8px; transform-origin: 379.608px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 385px 8px; transform-origin: 385px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = CPtitle(n)\r\n  y = isCodyProblem(n);\r\nend","test_suite":"%%\r\nn = 60;\r\ny = CPtitle(n);\r\ny_correct = {'The Goldbach Conjecture'};\r\nassert(isequal(y,y_correct))\r\n\r\n%% \r\nn = 97;\r\ny = CPtitle(n);\r\nassert(isempty(y{1}))\r\n\r\n%%\r\nn = [1319 1515];\r\ny = CPtitle(n);\r\ny_correct = {'Leap years on other planets', 'Procrustean bed'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45193 45196];\r\ny = CPtitle(n);\r\ny_correct = {'Fun with permutations', 'Determine whether a given point is inside or outside a polygon'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45180 46898 47864];\r\ny = CPtitle(n);\r\ny_correct = {'All flights lead to Idaho Falls', 'Sum of all the divisors of n', 'Calculate the Surface Area of an Ellipsoid'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [44341 47673 47803];\r\ny = CPtitle(n);\r\ny_correct = {'Hexagonal numbers on a spiral matrix', 'Area under standard normal curve', 'Check if the input is a strong prime'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [42383 42415];\r\ny = CPtitle(n);\r\ny_correct = {['Combined Ages 3 - Non-symmetric, n ' char(8805) ' 3'], 'Divisible by 13'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [1215 2869];\r\ny = CPtitle(n);\r\ny_correct = {'Diophantine Equations (Inspired by Project Euler, problem 66)', 'There are 10 types of people in the world'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [44067 44068 44071];\r\ny = CPtitle(n);\r\ny_correct = {'The last non-zero digit of a factorial', 'The number of trailing zero digit of a factorial', 'Smallest n, for n! to have m trailing zero digits'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45272 45302 45339];\r\ny = CPtitle(n);\r\ny_correct = {'Pseudo-vampire number ', 'Ugly numbers - 03', 'XOR fibonacci'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 46072;\r\ny = CPtitle(n);\r\ny_correct = {'Rock Paper Scissors Lizard Spock'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [51630 51640];\r\ny = CPtitle(n);\r\ny_correct = {'Highest building', 'Similar triangles'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1012:1015;\r\ny = CPtitle(n);\r\ny_correct = {'Determine if input is a perfect number', [], [], 'Polynomial Interpolation'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 42240:42250;\r\ny = CPtitle(n(randi(11,1,2)));\r\nassert(all(arrayfun(@(k) isempty(y{k}),1:2)))\r\n\r\n%%\r\nn = 8047+randi(8);\r\ny1 = CPtitle(n);\r\ns = y1{1};\r\nc = split(CPtitle(sum(double(s(1:13)))));\r\nassert(isequal(c{4},'Awesome'))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":46909,"edited_by":46909,"edited_at":"2025-07-16T16:53:28.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-05-18T05:40:12.000Z","updated_at":"2025-07-16T16:53:28.000Z","published_at":"2021-05-18T05:44:30.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":42638,"title":"Number of active Cody players by date","description":"I'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date. _Active_ is defined as having a nonzero score.\r\n\r\n*Examples*\r\n\r\n  numcodyplayers('1 Jan 2000') returns 0\r\n\r\nbecause Cody did not exist (at least not publicly) at that time\r\n\r\n  numcodyplayers('26 Jan 2012') returns 260\r\n\r\nbecause in the first week of recorded activity, 260 unique players participated.\r\n\r\n*Notes*\r\n\r\n* Players who were active _on or prior to_ the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\r\n* You may find \u003chttp://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/ this recent blog post\u003e helpful for getting started.\r\n* As tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.","description_html":"\u003cp\u003eI'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date. \u003ci\u003eActive\u003c/i\u003e is defined as having a nonzero score.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003enumcodyplayers('1 Jan 2000') returns 0\r\n\u003c/pre\u003e\u003cp\u003ebecause Cody did not exist (at least not publicly) at that time\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003enumcodyplayers('26 Jan 2012') returns 260\r\n\u003c/pre\u003e\u003cp\u003ebecause in the first week of recorded activity, 260 unique players participated.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes\u003c/b\u003e\u003c/p\u003e\u003cul\u003e\u003cli\u003ePlayers who were active \u003ci\u003eon or prior to\u003c/i\u003e the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\u003c/li\u003e\u003cli\u003eYou may find \u003ca href = \"http://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/\"\u003ethis recent blog post\u003c/a\u003e helpful for getting started.\u003c/li\u003e\u003cli\u003eAs tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.\u003c/li\u003e\u003c/ul\u003e","function_template":"function y = numcodyplayers(x)\r\n  y = 0;\r\nend","test_suite":"%%\r\nassert(isequal(numcodyplayers('17 Aug 1939'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('7 Dec 1984'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('1 Jan 2012'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('19 Jan 2012'),3))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('26 Jan 2012'),260))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('14 Feb 2012'),852))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('19 Feb 2012'),910))","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2015-09-28T21:12:11.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-09-28T20:36:26.000Z","updated_at":"2015-09-28T21:14:11.000Z","published_at":"2015-09-28T21:12:11.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date.\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\u003eActive\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as having a nonzero score.\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\u003eExamples\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[numcodyplayers('1 Jan 2000') returns 0]]\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\u003ebecause Cody did not exist (at least not publicly) at that time\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[numcodyplayers('26 Jan 2012') returns 260]]\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\u003ebecause in the first week of recorded activity, 260 unique players participated.\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\u003eNotes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlayers who were active\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\u003eon or prior to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou may find\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://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ethis recent blog post\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e helpful for getting started.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.\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":1949,"title":"Get top 5 Cody Player Emails Automatically","description":"Yes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\r\n\r\nLooking at the list of the players \u003chttp://www.mathworks.com/matlabcentral/cody/players\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \"View Profile Information\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand. \r\n\r\nFor this program, let's say we want the top 5 profiles that give a \"real\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it. \r\n\r\nIf you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \"mailto:\" and if it is there, the email address is immediately following it. If the string \"mailto:\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\r\n\r\nAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\r\n\r\n*I am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.*\r\n\r\n*If this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \"My Community Profile\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.* ","description_html":"\u003cp\u003eYes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\u003c/p\u003e\u003cp\u003eLooking at the list of the players \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/players\"\u003ehttp://www.mathworks.com/matlabcentral/cody/players\u003c/a\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \"View Profile Information\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand.\u003c/p\u003e\u003cp\u003eFor this program, let's say we want the top 5 profiles that give a \"real\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it.\u003c/p\u003e\u003cp\u003eIf you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \"mailto:\" and if it is there, the email address is immediately following it. If the string \"mailto:\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\u003c/p\u003e\u003cp\u003eAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\u003c/p\u003e\u003cp\u003e\u003cb\u003eI am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.\u003c/b\u003e\u003c/p\u003e\u003cp\u003e\u003cb\u003eIf this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \"My Community Profile\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.\u003c/b\u003e\u003c/p\u003e","function_template":"function emails = getCodyEmails()\r\n  emails = {};\r\nend","test_suite":"%%\r\n% My code is below, it's used to generate the expected result.\r\n\r\n%Read in the player page\r\nplayerPage=urlread('http://www.mathworks.com/matlabcentral/cody/players');\r\n\r\n%Find where the web address for each profile starts\r\nstartIdx=strfind(playerPage,'\u003cdiv class=\"grid_53 push_3\"\u003e')+104; \r\n\r\n%Initialize output array\r\nemails={};\r\n\r\n%Get top 5 only\r\nfor i=1:5\r\n    % Get the profile page link\r\n   tempStr=playerPage(startIdx(i):startIdx(i)+100);\r\n   quoteIdx=strfind(tempStr,'\"')-1;\r\n   profilePageLink=['http://www.mathworks.com' tempStr(1:quoteIdx(1))];\r\n   \r\n   profilePage=urlread(profilePageLink);\r\n   % Try and find mailto link\r\n   tStartIdx=strfind(profilePage,'mailto');\r\n   \r\n   %If you could find it\r\n   if ~isempty(tStartIdx)\r\n       % Get the email\r\n       tEndIdx=strfind(profilePage(tStartIdx:tStartIdx+100),'\"')+tStartIdx;\r\n       \r\n       % Add it to our cell array\r\n       emails{length(emails)+1}=profilePage(tStartIdx+7:tEndIdx-2);\r\n   end\r\n    \r\nend\r\n\r\n\r\ntic\r\nyourResponse=getCodyEmails()\r\ntimeElapsed=toc\r\n\r\n\r\nassert(isequal(yourResponse,emails))\r\nassert(isequal(1,timeElapsed\u003e3))","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":3743,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T05:40:10.000Z","updated_at":"2025-07-31T17:14:24.000Z","published_at":"2013-10-20T05:40:10.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\u003eYes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\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\u003eLooking at the list of the players\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/players\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://www.mathworks.com/matlabcentral/cody/players\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \\\"View Profile Information\\\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand.\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 this program, let's say we want the top 5 profiles that give a \\\"real\\\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it.\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 you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \\\"mailto:\\\" and if it is there, the email address is immediately following it. If the string \\\"mailto:\\\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\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\u003eAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\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\u003eI am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.\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\u003eIf this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \\\"My Community Profile\\\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.\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":540,"title":"Convert hex color specification to MATLAB RGB","description":"Here's something that comes up all the time if you deal with web pages.\r\n\r\nGiven a \u003chttp://www.w3schools.com/html/html_colors.asp hexadecimal color specification\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 1.\r\n\r\nThe input is a string starting with '#'. The output should be a 1-by-3 vector.\r\n\r\nExamples:\r\n\r\n Input  '#0000FF'\r\n Output [0 0 1]\r\n \r\n Input  '#33FF00'\r\n Output [0.2 1 0]","description_html":"\u003cp\u003eHere's something that comes up all the time if you deal with web pages.\u003c/p\u003e\u003cp\u003eGiven a \u003ca href=\"http://www.w3schools.com/html/html_colors.asp\"\u003ehexadecimal color specification\u003c/a\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 1.\u003c/p\u003e\u003cp\u003eThe input is a string starting with '#'. The output should be a 1-by-3 vector.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e Input  '#0000FF'\r\n Output [0 0 1]\u003c/pre\u003e\u003cpre\u003e Input  '#33FF00'\r\n Output [0.2 1 0]\u003c/pre\u003e","function_template":"function rgb = color_hex2rgb(hex)\r\n  rgb = [0 0 0];\r\nend","test_suite":"%%\r\nhex =  '#0000FF';\r\nrgb = [0 0 1];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#33FF00';\r\nrgb = [0.2 1 0];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#FFCCFF';\r\nrgb = [1 0.8 1];\r\nassert(isequal(color_hex2rgb(hex),rgb))\r\n\r\n%%\r\nhex =  '#999999';\r\nrgb = [.6 .6 .6];\r\nassert(isequal(color_hex2rgb(hex),rgb))","published":true,"deleted":false,"likes_count":7,"comments_count":0,"created_by":7,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":256,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-30T18:18:52.000Z","updated_at":"2026-03-09T20:38:06.000Z","published_at":"2012-03-30T18:26: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\u003eHere's something that comes up all the time if you deal with web pages.\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\u003eGiven a\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.w3schools.com/html/html_colors.asp\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehexadecimal color specification\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e of the form #FFFFFF, convert it to a 3 element MATLAB color specification. Remember that MATLAB RGB color values are between 0 and 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\u003eThe input is a string starting with '#'. The output should be a 1-by-3 vector.\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\u003eExamples:\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[ Input  '#0000FF'\\n Output [0 0 1]\\n\\n Input  '#33FF00'\\n Output [0.2 1 0]]]\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":1948,"title":"Convert this color - RGB Vector to Hex String","description":"Given a 3 element RGB vector corresponding to a color (given by the MATLAB color spec \u003chttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color. \r\n\r\nFor example, given the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :) \r\n\r\n","description_html":"\u003cp\u003eGiven a 3 element RGB vector corresponding to a color (given by the MATLAB color spec \u003ca href = \"http://www.mathworks.com/help/matlab/ref/colorspec.html\"\u003ehttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003c/a\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color.\u003c/p\u003e\u003cp\u003eFor example, given the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :)\u003c/p\u003e","function_template":"function hexString = rgb2hex(rgbColor)\r\n  hexString = rgbColor;\r\nend","test_suite":"%%\r\nx = [0,0,0.0001];\r\ny_correct = '000000';\r\nassert(isequal(rgb2hex(x),y_correct))\r\n\r\n%%\r\nx = [1,1,1];\r\ny_correct = 'FFFFFF';\r\nassert(isequal(rgb2hex(x),y_correct))\r\n\r\n%%\r\nx = [.5,.5,.2];\r\ny_correct = '7F7F33';\r\nassert(isequal(rgb2hex(x),y_correct))","published":true,"deleted":false,"likes_count":2,"comments_count":1,"created_by":3743,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":139,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T03:34:55.000Z","updated_at":"2026-02-04T11:54:49.000Z","published_at":"2013-10-20T03:34:55.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 3 element RGB vector corresponding to a color (given by the MATLAB color spec\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/help/matlab/ref/colorspec.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://www.mathworks.com/help/matlab/ref/colorspec.html\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e), return the corresponding hex value string associated with it. This hex value string is often used when coding in HTML to specify a color.\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 the vector [0, 1, 1], you would return the string 00FFFF and given the vector [.5 .5 .2], you would return the string 7F7F33. We will assume that in this case once we multiply the vector by 255, we will round down to the nearest integer. If anyone thinks that we should not assume rounding down, feel free to comment :)\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":877,"title":"What is Title of Cody Challenge 42?","description":"Given a Cody Challenge number return its Title.\r\n\r\n*Input:* Cody Challenge Number\r\n\r\n*Output:* Title of the Cody Challenge\r\n\r\n  1 'Times 2 - START HERE'  \r\n  2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \r\n110 'Make an N-dimensional Multiplication Table'\r\n808 'Hamming Weight - Fast'  \r\n\r\n\r\nFor my methods this was non-trivial due to hyperlink issues.\r\n\r\n Warning:What \"you\" may see is not what you \"get\"\r\n Can anyone \"get\" the title to challenge 4?\r\n My method faces many blocked challenge numbers.\r\n\r\n(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)","description_html":"\u003cp\u003eGiven a Cody Challenge number return its Title.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e Cody Challenge Number\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e Title of the Cody Challenge\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1 'Times 2 - START HERE'  \r\n2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \r\n110 'Make an N-dimensional Multiplication Table'\r\n808 'Hamming Weight - Fast'  \r\n\u003c/pre\u003e\u003cp\u003eFor my methods this was non-trivial due to hyperlink issues.\u003c/p\u003e\u003cpre\u003e Warning:What \"you\" may see is not what you \"get\"\r\n Can anyone \"get\" the title to challenge 4?\r\n My method faces many blocked challenge numbers.\u003c/pre\u003e\u003cp\u003e(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)\u003c/p\u003e","function_template":"function Title = Cody_Title(n)\r\n  Title='Good Luck';\r\nend","test_suite":"%%\r\nn = 1;\r\nTitle_correct = 'Times 2 - START HERE';\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 2;\r\nTitle_correct = 'Make the vector [1 2 3 4 5 6 7 8 9 10]';\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 110;\r\nTitle_correct = 'Make an N-dimensional Multiplication Table';\r\n% This problem hurts my head\r\nassert(strcmp(Cody_Title(n),Title_correct))\r\n%%\r\nn = 808;\r\nTitle_correct = 'Hamming Weight - Fast';\r\nassert(strcmp(Cody_Title(n),Title_correct))","published":true,"deleted":false,"likes_count":6,"comments_count":3,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":32,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-08-04T14:40:09.000Z","updated_at":"2025-12-27T16:14:18.000Z","published_at":"2012-08-04T16:25: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\u003eGiven a Cody Challenge number return its Title.\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 Cody Challenge Number\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 Title of the Cody Challenge\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[1 'Times 2 - START HERE'  \\n2 'Make the vector [1 2 3 4 5 6 7 8 9 10]' \\n110 'Make an N-dimensional Multiplication Table'\\n808 'Hamming Weight - Fast']]\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\u003eFor my methods this was non-trivial due to hyperlink issues.\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[ Warning:What \\\"you\\\" may see is not what you \\\"get\\\"\\n Can anyone \\\"get\\\" the title to challenge 4?\\n My method faces many blocked challenge numbers.]]\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\u003e(I retain the right to add cases if hard coded answers are invoked and become the leading solution size)\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":51793,"title":"List the titles of Cody problems","description":"Cody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \r\nWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. ","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 135px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 408px 67.5px; transform-origin: 408px 67.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 42px; text-align: left; transform-origin: 385px 42px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 379.608px 8px; transform-origin: 379.608px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eCody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 385px 21px; text-align: left; transform-origin: 385px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 385px 8px; transform-origin: 385px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = CPtitle(n)\r\n  y = isCodyProblem(n);\r\nend","test_suite":"%%\r\nn = 60;\r\ny = CPtitle(n);\r\ny_correct = {'The Goldbach Conjecture'};\r\nassert(isequal(y,y_correct))\r\n\r\n%% \r\nn = 97;\r\ny = CPtitle(n);\r\nassert(isempty(y{1}))\r\n\r\n%%\r\nn = [1319 1515];\r\ny = CPtitle(n);\r\ny_correct = {'Leap years on other planets', 'Procrustean bed'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45193 45196];\r\ny = CPtitle(n);\r\ny_correct = {'Fun with permutations', 'Determine whether a given point is inside or outside a polygon'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45180 46898 47864];\r\ny = CPtitle(n);\r\ny_correct = {'All flights lead to Idaho Falls', 'Sum of all the divisors of n', 'Calculate the Surface Area of an Ellipsoid'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [44341 47673 47803];\r\ny = CPtitle(n);\r\ny_correct = {'Hexagonal numbers on a spiral matrix', 'Area under standard normal curve', 'Check if the input is a strong prime'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [42383 42415];\r\ny = CPtitle(n);\r\ny_correct = {['Combined Ages 3 - Non-symmetric, n ' char(8805) ' 3'], 'Divisible by 13'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [1215 2869];\r\ny = CPtitle(n);\r\ny_correct = {'Diophantine Equations (Inspired by Project Euler, problem 66)', 'There are 10 types of people in the world'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [44067 44068 44071];\r\ny = CPtitle(n);\r\ny_correct = {'The last non-zero digit of a factorial', 'The number of trailing zero digit of a factorial', 'Smallest n, for n! to have m trailing zero digits'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [45272 45302 45339];\r\ny = CPtitle(n);\r\ny_correct = {'Pseudo-vampire number ', 'Ugly numbers - 03', 'XOR fibonacci'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 46072;\r\ny = CPtitle(n);\r\ny_correct = {'Rock Paper Scissors Lizard Spock'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = [51630 51640];\r\ny = CPtitle(n);\r\ny_correct = {'Highest building', 'Similar triangles'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 1012:1015;\r\ny = CPtitle(n);\r\ny_correct = {'Determine if input is a perfect number', [], [], 'Polynomial Interpolation'};\r\nassert(isequal(y,y_correct))\r\n\r\n%%\r\nn = 42240:42250;\r\ny = CPtitle(n(randi(11,1,2)));\r\nassert(all(arrayfun(@(k) isempty(y{k}),1:2)))\r\n\r\n%%\r\nn = 8047+randi(8);\r\ny1 = CPtitle(n);\r\ns = y1{1};\r\nc = split(CPtitle(sum(double(s(1:13)))));\r\nassert(isequal(c{4},'Awesome'))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":1,"created_by":46909,"edited_by":46909,"edited_at":"2025-07-16T16:53:28.000Z","deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-05-18T05:40:12.000Z","updated_at":"2025-07-16T16:53:28.000Z","published_at":"2021-05-18T05:44:30.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCody has several ways to list problems, but I have not yet found an easy way to list them by their numbers. Listing by date created is close, but if someone starts a problem one day and finishes it much later, the numbers will be out of order. Even when the numbers are in order, finding a particular number can take some scrolling. One can type a URL with the problem number, but waiting for the page to load and being redirected to the main problems page gets cumbersome. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that takes a number or vector of numbers as input and returns a cell array of the titles of the problems. If the problem does not exist, return an empty vector in place of the title. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":42638,"title":"Number of active Cody players by date","description":"I'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date. _Active_ is defined as having a nonzero score.\r\n\r\n*Examples*\r\n\r\n  numcodyplayers('1 Jan 2000') returns 0\r\n\r\nbecause Cody did not exist (at least not publicly) at that time\r\n\r\n  numcodyplayers('26 Jan 2012') returns 260\r\n\r\nbecause in the first week of recorded activity, 260 unique players participated.\r\n\r\n*Notes*\r\n\r\n* Players who were active _on or prior to_ the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\r\n* You may find \u003chttp://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/ this recent blog post\u003e helpful for getting started.\r\n* As tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.","description_html":"\u003cp\u003eI'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date. \u003ci\u003eActive\u003c/i\u003e is defined as having a nonzero score.\u003c/p\u003e\u003cp\u003e\u003cb\u003eExamples\u003c/b\u003e\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003enumcodyplayers('1 Jan 2000') returns 0\r\n\u003c/pre\u003e\u003cp\u003ebecause Cody did not exist (at least not publicly) at that time\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003enumcodyplayers('26 Jan 2012') returns 260\r\n\u003c/pre\u003e\u003cp\u003ebecause in the first week of recorded activity, 260 unique players participated.\u003c/p\u003e\u003cp\u003e\u003cb\u003eNotes\u003c/b\u003e\u003c/p\u003e\u003cul\u003e\u003cli\u003ePlayers who were active \u003ci\u003eon or prior to\u003c/i\u003e the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\u003c/li\u003e\u003cli\u003eYou may find \u003ca href = \"http://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/\"\u003ethis recent blog post\u003c/a\u003e helpful for getting started.\u003c/li\u003e\u003cli\u003eAs tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.\u003c/li\u003e\u003c/ul\u003e","function_template":"function y = numcodyplayers(x)\r\n  y = 0;\r\nend","test_suite":"%%\r\nassert(isequal(numcodyplayers('17 Aug 1939'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('7 Dec 1984'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('1 Jan 2012'),0))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('19 Jan 2012'),3))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('26 Jan 2012'),260))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('14 Feb 2012'),852))\r\n\r\n%%\r\nassert(isequal(numcodyplayers('19 Feb 2012'),910))","published":true,"deleted":false,"likes_count":0,"comments_count":6,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2015-09-28T21:12:11.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-09-28T20:36:26.000Z","updated_at":"2015-09-28T21:14:11.000Z","published_at":"2015-09-28T21:12:11.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eI'm looking to start a series of problems related to web scraping. In this problem, you are given a date in 'dd mmm yyyy' format and must return the total number of active Cody players as of that date.\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\u003eActive\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is defined as having a nonzero score.\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\u003eExamples\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[numcodyplayers('1 Jan 2000') returns 0]]\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\u003ebecause Cody did not exist (at least not publicly) at that time\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[numcodyplayers('26 Jan 2012') returns 260]]\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\u003ebecause in the first week of recorded activity, 260 unique players participated.\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\u003eNotes\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePlayers who were active\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\u003eon or prior to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the input date count toward the output. For instance, if the input date is yesterday, then all activity prior to 12:00am this morning should be included.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou may find\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://blogs.mathworks.com/videos/2015/09/23/reading-web-pages-part-1-using-webread/\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ethis recent blog post\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e helpful for getting started.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs tempting as it may be, I encourage you not to hard-code the answers. I will update the test suite if this becomes an issue.\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":1949,"title":"Get top 5 Cody Player Emails Automatically","description":"Yes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\r\n\r\nLooking at the list of the players \u003chttp://www.mathworks.com/matlabcentral/cody/players\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \"View Profile Information\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand. \r\n\r\nFor this program, let's say we want the top 5 profiles that give a \"real\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it. \r\n\r\nIf you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \"mailto:\" and if it is there, the email address is immediately following it. If the string \"mailto:\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\r\n\r\nAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\r\n\r\n*I am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.*\r\n\r\n*If this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \"My Community Profile\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.* ","description_html":"\u003cp\u003eYes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\u003c/p\u003e\u003cp\u003eLooking at the list of the players \u003ca href = \"http://www.mathworks.com/matlabcentral/cody/players\"\u003ehttp://www.mathworks.com/matlabcentral/cody/players\u003c/a\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \"View Profile Information\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand.\u003c/p\u003e\u003cp\u003eFor this program, let's say we want the top 5 profiles that give a \"real\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it.\u003c/p\u003e\u003cp\u003eIf you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \"mailto:\" and if it is there, the email address is immediately following it. If the string \"mailto:\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\u003c/p\u003e\u003cp\u003eAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\u003c/p\u003e\u003cp\u003e\u003cb\u003eI am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.\u003c/b\u003e\u003c/p\u003e\u003cp\u003e\u003cb\u003eIf this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \"My Community Profile\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.\u003c/b\u003e\u003c/p\u003e","function_template":"function emails = getCodyEmails()\r\n  emails = {};\r\nend","test_suite":"%%\r\n% My code is below, it's used to generate the expected result.\r\n\r\n%Read in the player page\r\nplayerPage=urlread('http://www.mathworks.com/matlabcentral/cody/players');\r\n\r\n%Find where the web address for each profile starts\r\nstartIdx=strfind(playerPage,'\u003cdiv class=\"grid_53 push_3\"\u003e')+104; \r\n\r\n%Initialize output array\r\nemails={};\r\n\r\n%Get top 5 only\r\nfor i=1:5\r\n    % Get the profile page link\r\n   tempStr=playerPage(startIdx(i):startIdx(i)+100);\r\n   quoteIdx=strfind(tempStr,'\"')-1;\r\n   profilePageLink=['http://www.mathworks.com' tempStr(1:quoteIdx(1))];\r\n   \r\n   profilePage=urlread(profilePageLink);\r\n   % Try and find mailto link\r\n   tStartIdx=strfind(profilePage,'mailto');\r\n   \r\n   %If you could find it\r\n   if ~isempty(tStartIdx)\r\n       % Get the email\r\n       tEndIdx=strfind(profilePage(tStartIdx:tStartIdx+100),'\"')+tStartIdx;\r\n       \r\n       % Add it to our cell array\r\n       emails{length(emails)+1}=profilePage(tStartIdx+7:tEndIdx-2);\r\n   end\r\n    \r\nend\r\n\r\n\r\ntic\r\nyourResponse=getCodyEmails()\r\ntimeElapsed=toc\r\n\r\n\r\nassert(isequal(yourResponse,emails))\r\nassert(isequal(1,timeElapsed\u003e3))","published":true,"deleted":false,"likes_count":0,"comments_count":1,"created_by":3743,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":13,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T05:40:10.000Z","updated_at":"2025-07-31T17:14:24.000Z","published_at":"2013-10-20T05:40:10.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\u003eYes, this is a little scary and also entirely possible to do in MATLAB, so let's do it!\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\u003eLooking at the list of the players\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/players\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://www.mathworks.com/matlabcentral/cody/players\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e automatically sorts them in order according to rank. For times sake, let's say we only want to get the emails from the first 5 people. This is relatively easy to do by hand, just click on the persons name, click on \\\"View Profile Information\\\" and you have the email but if you wanted to do say the first 1,000 people instead, that would be not very fun to do by hand.\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 this program, let's say we want the top 5 profiles that give a \\\"real\\\" email address (not a contact form) to be in a cell array. This means that if one of the top 5 people have removed their email address, your returned cell array will have less than 5 emails in it.\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 you are not sure where to start, check out the urlread command, it allows you to put the web page source code into a string. From there, you are able to parse through that to get the URLs for the top 5 players web profile. From there, look for a \\\"mailto:\\\" and if it is there, the email address is immediately following it. If the string \\\"mailto:\\\" does not exist, there is no email address on that webpage. Put the emails in a cell array when you find them and you are good to go!\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\u003eAs an example, I have poorly written MATLAB code that works in the test case since I want the test case to always be accurate. 98% of the execution time is spent reading the webpages, and at least on my computer, that takes quite a while to do (about 2.5 seconds per profile page).\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\u003eI am definitely not collecting emails for anything, and you should not either! This is designed solely as a learning example and should in no way be used for anything unethical. All information obtained here is easily obtained by anyone in the world who knows how to program.\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\u003eIf this scares you and you want to remove your email address from your profile, it's easy. All you have to do is click \\\"My Community Profile\\\" (underneath the search bar at very top of screen) and then edit your preferences to not display your email address.\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:\"html\"","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:\"html\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"html\"","","\"","html","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110ac0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007ff7fc110a20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110160\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110d40\u003e":1,"#\u003cMathWorks::Search::Field:0x00007ff7fc110ca0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007ff7fc110c00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007ff7fc110b60\u003e":"tag:\"html\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110b60\u003e":"tag:\"html\""},"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:\"html\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"html\"","","\"","html","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110ac0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007ff7fc110a20\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110160\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110d40\u003e":1,"#\u003cMathWorks::Search::Field:0x00007ff7fc110ca0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007ff7fc110c00\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007ff7fc110b60\u003e":"tag:\"html\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007ff7fc110b60\u003e":"tag:\"html\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":540,"difficulty_rating":"easy-medium"},{"id":1948,"difficulty_rating":"easy-medium"},{"id":877,"difficulty_rating":"easy-medium"},{"id":51793,"difficulty_rating":"medium"},{"id":42638,"difficulty_rating":"medium"},{"id":1949,"difficulty_rating":"medium-hard"}]}}