{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-16T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":2856,"title":"Matlab Basics - Create a row vector","description":"Write a Matlab script to create a row vector of 10 consecutive numbers\r\nx = [1 2 3 4 5 6 7 8 9 10]","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 51px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 408px 25.5px; transform-origin: 408px 25.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\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: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a Matlab script to create a row vector of 10 consecutive numbers\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\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: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ex = [1 2 3 4 5 6 7 8 9 10]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function x = create_row()\r\n  x = 1:10;\r\nend","test_suite":"%%\r\nassert(isequal(diff(create_row) ,ones(1,9)))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":8,"created_by":34237,"edited_by":3348724,"edited_at":"2025-12-19T21:22:30.000Z","deleted_by":null,"deleted_at":null,"solvers_count":317,"test_suite_updated_at":"2025-12-19T21:22:30.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-01-20T19:21:30.000Z","updated_at":"2026-03-31T09:56:09.000Z","published_at":"2015-01-22T19:35:13.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\u003eWrite a Matlab script to create a row vector of 10 consecutive numbers\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\u003ex = [1 2 3 4 5 6 7 8 9 10]\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":1162,"title":"Happy 2013...","description":"Happy 2013, everyone!  An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits.  Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits.  You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\r\n\r\nFor example:  if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.","description_html":"\u003cp\u003eHappy 2013, everyone!  An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits.  Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits.  You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\u003c/p\u003e\u003cp\u003eFor example:  if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.\u003c/p\u003e","function_template":"function temp=diff_digits(start,finish)\r\n\r\ntemp=start-finish\r\n\r\nend","test_suite":"%%\r\nstart=1000; finish=1023; y_correct = 1;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nstart=1000; finish=9999; y_correct = 4536;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nstart=1234; finish=5678; y_correct = 2273;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nassert(isequal(diff_digits(4321,6789),1210))\r\n%%\r\nassert(isequal(diff_digits(1988,2012),0))","published":true,"deleted":false,"likes_count":10,"comments_count":3,"created_by":1615,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":193,"test_suite_updated_at":"2018-05-24T11:43:36.000Z","rescore_all_solutions":true,"group_id":44,"created_at":"2013-01-02T16:17:59.000Z","updated_at":"2026-02-07T16:08:31.000Z","published_at":"2013-01-02T16:20:24.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\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\u003eHappy 2013, everyone! An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits. Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits. You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\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\u003eFor example: if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.\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":1752,"title":"Get me! v4   (Cody hacking challenge)","description":"The latest version of the anti-hack test-suite.\r\n","description_html":"\u003cp\u003eThe latest version of the anti-hack test-suite.\u003c/p\u003e","function_template":"function y = get_me()\r\n  y = 42;\r\nend","test_suite":"%%\r\n\r\n% Clean workspace\r\n\r\n!/bin/cp get_me.m safe\r\n!/bin/rm *.*\r\n!/bin/mv safe get_me.m\r\n!/bin/rm @*\r\n\r\n% Clean user's function from some known jailbreaking mechanisms\r\nfunctions = {'!','feval','str2func','regex','system','dos','unix','perl','java','fopen','write','save','setenv','path'};\r\n\r\nfid = fopen('get_me.m');\r\n  st = char(fread(fid)');\r\n  for n = 1:numel(functions)\r\n    st = regexprep(st, functions{n}, 'error(''No fancy functions!''); %', 'ignorecase');\r\n  end\r\nfclose(fid)\r\n\r\n% Force a function header, and comment first code's line (the supposedly users' function header)\r\nst = sprintf('function y = get_me()\\n%%%s', st);\r\n\r\nfid = fopen('get_me.m' , 'w');\r\n  fwrite(fid,st);\r\nfclose(fid)\r\n\r\n% Release the Kraken!\r\nget_me()\r\n\r\n% Try to cleanup the mess\r\n!/bin/cp get_me.m safe\r\n!/bin/rm *.*\r\n!/bin/mv safe get_me.m\r\n!/bin/rm @*\r\n\r\npath(pathdef) % undo any change on search path\r\n\r\nassert(isequal(ans,now))","published":true,"deleted":false,"likes_count":6,"comments_count":7,"created_by":3359,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2013-07-26T15:59:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-07-26T15:00:58.000Z","updated_at":"2025-06-22T16:17:30.000Z","published_at":"2013-07-26T15:00:58.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe latest version of the anti-hack test-suite.\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":2856,"title":"Matlab Basics - Create a row vector","description":"Write a Matlab script to create a row vector of 10 consecutive numbers\r\nx = [1 2 3 4 5 6 7 8 9 10]","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 51px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 408px 25.5px; transform-origin: 408px 25.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\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: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a Matlab script to create a row vector of 10 consecutive numbers\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; 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; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\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: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ex = [1 2 3 4 5 6 7 8 9 10]\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function x = create_row()\r\n  x = 1:10;\r\nend","test_suite":"%%\r\nassert(isequal(diff(create_row) ,ones(1,9)))\r\n","published":true,"deleted":false,"likes_count":5,"comments_count":8,"created_by":34237,"edited_by":3348724,"edited_at":"2025-12-19T21:22:30.000Z","deleted_by":null,"deleted_at":null,"solvers_count":317,"test_suite_updated_at":"2025-12-19T21:22:30.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2015-01-20T19:21:30.000Z","updated_at":"2026-03-31T09:56:09.000Z","published_at":"2015-01-22T19:35:13.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\u003eWrite a Matlab script to create a row vector of 10 consecutive numbers\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\u003ex = [1 2 3 4 5 6 7 8 9 10]\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":1162,"title":"Happy 2013...","description":"Happy 2013, everyone!  An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits.  Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits.  You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\r\n\r\nFor example:  if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.","description_html":"\u003cp\u003eHappy 2013, everyone!  An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits.  Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits.  You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\u003c/p\u003e\u003cp\u003eFor example:  if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.\u003c/p\u003e","function_template":"function temp=diff_digits(start,finish)\r\n\r\ntemp=start-finish\r\n\r\nend","test_suite":"%%\r\nstart=1000; finish=1023; y_correct = 1;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nstart=1000; finish=9999; y_correct = 4536;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nstart=1234; finish=5678; y_correct = 2273;\r\nassert(isequal(diff_digits(start,finish),y_correct))\r\n%%\r\nassert(isequal(diff_digits(4321,6789),1210))\r\n%%\r\nassert(isequal(diff_digits(1988,2012),0))","published":true,"deleted":false,"likes_count":10,"comments_count":3,"created_by":1615,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":193,"test_suite_updated_at":"2018-05-24T11:43:36.000Z","rescore_all_solutions":true,"group_id":44,"created_at":"2013-01-02T16:17:59.000Z","updated_at":"2026-02-07T16:08:31.000Z","published_at":"2013-01-02T16:20:24.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\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\u003eHappy 2013, everyone! An interesting tidbit about 2013 is that it is the first year since 1987 to contain four different digits. Write a MATLAB function that, when given a start year and an end year, will tell you how many of the years between these two values have four unique digits. You may assume that the years will only have four digits, and that the start year will be smaller than the end year.\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\u003eFor example: if start=1000 and finish=1023, your output should be 1, as 1023 is the only year in that range that has four unique digits.\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":1752,"title":"Get me! v4   (Cody hacking challenge)","description":"The latest version of the anti-hack test-suite.\r\n","description_html":"\u003cp\u003eThe latest version of the anti-hack test-suite.\u003c/p\u003e","function_template":"function y = get_me()\r\n  y = 42;\r\nend","test_suite":"%%\r\n\r\n% Clean workspace\r\n\r\n!/bin/cp get_me.m safe\r\n!/bin/rm *.*\r\n!/bin/mv safe get_me.m\r\n!/bin/rm @*\r\n\r\n% Clean user's function from some known jailbreaking mechanisms\r\nfunctions = {'!','feval','str2func','regex','system','dos','unix','perl','java','fopen','write','save','setenv','path'};\r\n\r\nfid = fopen('get_me.m');\r\n  st = char(fread(fid)');\r\n  for n = 1:numel(functions)\r\n    st = regexprep(st, functions{n}, 'error(''No fancy functions!''); %', 'ignorecase');\r\n  end\r\nfclose(fid)\r\n\r\n% Force a function header, and comment first code's line (the supposedly users' function header)\r\nst = sprintf('function y = get_me()\\n%%%s', st);\r\n\r\nfid = fopen('get_me.m' , 'w');\r\n  fwrite(fid,st);\r\nfclose(fid)\r\n\r\n% Release the Kraken!\r\nget_me()\r\n\r\n% Try to cleanup the mess\r\n!/bin/cp get_me.m safe\r\n!/bin/rm *.*\r\n!/bin/mv safe get_me.m\r\n!/bin/rm @*\r\n\r\npath(pathdef) % undo any change on search path\r\n\r\nassert(isequal(ans,now))","published":true,"deleted":false,"likes_count":6,"comments_count":7,"created_by":3359,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2013-07-26T15:59:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-07-26T15:00:58.000Z","updated_at":"2025-06-22T16:17:30.000Z","published_at":"2013-07-26T15:00:58.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\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"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\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe latest version of the anti-hack test-suite.\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:\"broken test suite\"","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:\"broken test suite\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"broken test suite\"","","\"","broken test suite","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd471df2a0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd471df200\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd471de8a0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd471df520\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd471df480\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd471df3e0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd471df340\u003e":"tag:\"broken test suite\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd471df340\u003e":"tag:\"broken test suite\""},"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:\"broken test suite\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"broken test suite\"","","\"","broken test suite","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fdd471df2a0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fdd471df200\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fdd471de8a0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fdd471df520\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fdd471df480\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fdd471df3e0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fdd471df340\u003e":"tag:\"broken test suite\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fdd471df340\u003e":"tag:\"broken test suite\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":2856,"difficulty_rating":"easy"},{"id":1162,"difficulty_rating":"easy-medium"},{"id":1752,"difficulty_rating":"easy-medium"},{"id":1949,"difficulty_rating":"medium-hard"}]}}