{"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":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":259,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-30T18:18:52.000Z","updated_at":"2026-04-11T10:21:21.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":141,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T03:34:55.000Z","updated_at":"2026-04-11T10:22:52.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":1368,"title":"Create an 8-color version of an image","description":"This problem was inspired by a tweet I saw from @MATLAB regarding \u003chttp://www.mathworks.com/matlabcentral/fileexchange/37816-the-warholer?s_eid=PSM_3808 The Warholer\u003e.\r\n\r\nGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \"image\" will only have 8 colors.\r\n\r\nYou may assume that the inputs are on the interval [0,255].\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eThis problem was inspired by a tweet I saw from @MATLAB regarding \u003ca href = \"http://www.mathworks.com/matlabcentral/fileexchange/37816-the-warholer?s_eid=PSM_3808\"\u003eThe Warholer\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \"image\" will only have 8 colors.\u003c/p\u003e\u003cp\u003eYou may assume that the inputs are on the interval [0,255].\u003c/p\u003e","function_template":"function B = warholer(A,t)\r\n  B = A;\r\nend","test_suite":"%%\r\nA = randi([51 255],[600 800 3]);\r\nt = [0 25 50];\r\nB = warholer(A,t);\r\nassert(all(B(:)==255))\r\n\r\n%%\r\nA = randi(100,[800 600 3]);\r\nt = [100 255 100];\r\nB = warholer(A,t);\r\nassert(all(B(:)==0))\r\n\r\n%%\r\nA = zeros(200,200,3);\r\nt = randi(255,1,3);\r\nB = warholer(A,t);\r\nassert(all(B(:)==0))\r\n\r\n%%\r\nA = 255*ones(100,100,3);\r\nt = randi(254,1,3);\r\nB = warholer(A,t);\r\nassert(all(B(:)==255))\r\n\r\n%%\r\nA(:,:,1) = randi([0 120],[480 320]);\r\nA(:,:,2) = randi([80 200],[480 320]);\r\nA(:,:,3) = randi([160 240],[480 320]);\r\nt = [150 50 150];\r\nB = warholer(A,t);\r\nassert(all(all(B(:,:,1)==0)))\r\nassert(all(all(B(:,:,2)==255)))\r\nassert(all(all(B(:,:,3)==255)))\r\n\r\n%%\r\nA(:,:,1) = randi([0 100],[480 320]);\r\nA(:,:,2) = randi([80 180],[480 320]);\r\nA(:,:,3) = randi([100 240],[480 320]);\r\nt = [180 60 250];\r\nB = warholer(A,t);\r\nassert(all(all(B(:,:,1)==0)))\r\nassert(all(all(B(:,:,2)==255)))\r\nassert(all(all(B(:,:,3)==0)))\r\n\r\n%%\r\nA(:,:,1) = magic(5)*10;\r\nA(:,:,2) = spiral(5)*10;\r\nA(:,:,3) = toeplitz(1:5)*50;\r\nt = [159 99 149];\r\nB_correct(:,:,1) = [255 255 0   0   0;\r\n                    255 0   0   0   255;\r\n                    0   0   0   255 255;\r\n                    0   0   255 255 0;\r\n                    0   255 255 0   0];\r\nB_correct(:,:,2) = [255 255 255 255 255;\r\n                    255 0   0   0   255;\r\n                    255 0   0   0   255;\r\n                    255 0   0   0   255;\r\n                    255 255 255 255 255];\r\nB_correct(:,:,3) = [0   0   255 255 255;\r\n                    0   0   0   255 255;\r\n                    255 0   0   0   255;\r\n                    255 255 0   0   0;\r\n                    255 255 255 0   0];\r\nassert(isequal(warholer(A,t),B_correct))\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":103,"test_suite_updated_at":"2013-08-05T02:37:21.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-03-20T23:26:39.000Z","updated_at":"2026-04-11T11:21:04.000Z","published_at":"2013-08-05T02:37:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem was inspired by a tweet I saw from @MATLAB regarding\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/fileexchange/37816-the-warholer?s_eid=PSM_3808\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThe Warholer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \\\"image\\\" will only have 8 colors.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou may assume that the inputs are on the interval [0,255].\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":818,"title":"Change a specific color in an image","description":"The ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\r\n\r\nAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].","description_html":"\u003cp\u003eThe ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\u003c/p\u003e\u003cp\u003eAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].\u003c/p\u003e","function_template":"function cdata_new = changeColor(cdata,c1,c2)\r\n  cdata_new = [];\r\nend","test_suite":"%%\r\nr = ones(100);\r\ng = zeros(100);\r\nb = zeros(100);\r\ncdata = cat(3,r,g,b);\r\nc1 = [1 0 0];\r\nc2 = [0 0 1];\r\ncdata_new = cat(3,b,g,r);\r\nassert(isequal(changeColor(cdata,c1,c2),cdata_new))\r\n\r\n%%\r\ncdata = rand([400,600,3])*0.9;\r\nc1 = [0 0.5 1];\r\nc2 = [1 1 1];\r\nassert(isequal(changeColor(cdata,c1,c2),cdata))\r\n\r\n%%\r\nind = randi(100,[50 1]);\r\nc1 = rand([1 3]); c1(3) = 0.95;\r\nc2 = [1 1 1];\r\ncdata = rand([100,1,3])*0.8;\r\ncdata_new = cdata;\r\nfor i=1:50\r\n    for j=1:3\r\n        cdata(ind(i),1,j) = c1(j);\r\n        cdata_new(ind(i),1,j) = c2(j);\r\n    end\r\nend\r\nassert(isequal(changeColor(cdata,c1,c2),cdata_new))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":118,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-07-09T04:56:55.000Z","updated_at":"2026-04-14T15:22:39.000Z","published_at":"2012-07-09T05:00:53.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 ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\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\u003eAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].\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":42849,"title":"RGB to CMYK","description":"Convert an RGB code to the corresponding CMYK code for printing.\r\n\r\n\r\nThe RGB input is a [1×3] double array between 0 and 1.\r\n\r\nCMYK must be a [1×4] double array between 0 and 1.","description_html":"\u003cp\u003eConvert an RGB code to the corresponding CMYK code for printing.\u003c/p\u003e\u003cp\u003eThe RGB input is a [1×3] double array between 0 and 1.\u003c/p\u003e\u003cp\u003eCMYK must be a [1×4] double array between 0 and 1.\u003c/p\u003e","function_template":"function CMYK = rgb2cmyk(RGB)\r\n  CMYK = RGB;\r\nend","test_suite":"%%\r\nRGB   = [0,0,0];\r\nCMYK  = [0,0,0,1];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,1,1];\r\nCMYK  = [0,0,0,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,0,0];\r\nCMYK  = [0,1,1,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,1,0];\r\nCMYK  = [0,0,1,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [150,25,0]/255;\r\nCMYK  = [0,5/6,1,7/17];\r\nerror = abs(rgb2cmyk(RGB)-CMYK);\r\nassert(all(error\u003c1e-4))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":12767,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":135,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-05-05T15:25:57.000Z","updated_at":"2026-04-11T10:25:57.000Z","published_at":"2016-05-05T15:26:16.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\u003eConvert an RGB code to the corresponding CMYK code for printing.\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\u003eThe RGB input is a [1×3] double array 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCMYK must be a [1×4] double array between 0 and 1.\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":259,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-03-30T18:18:52.000Z","updated_at":"2026-04-11T10:21:21.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":141,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2013-10-20T03:34:55.000Z","updated_at":"2026-04-11T10:22:52.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":1368,"title":"Create an 8-color version of an image","description":"This problem was inspired by a tweet I saw from @MATLAB regarding \u003chttp://www.mathworks.com/matlabcentral/fileexchange/37816-the-warholer?s_eid=PSM_3808 The Warholer\u003e.\r\n\r\nGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \"image\" will only have 8 colors.\r\n\r\nYou may assume that the inputs are on the interval [0,255].\r\n\r\n\r\n\r\n","description_html":"\u003cp\u003eThis problem was inspired by a tweet I saw from @MATLAB regarding \u003ca href = \"http://www.mathworks.com/matlabcentral/fileexchange/37816-the-warholer?s_eid=PSM_3808\"\u003eThe Warholer\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \"image\" will only have 8 colors.\u003c/p\u003e\u003cp\u003eYou may assume that the inputs are on the interval [0,255].\u003c/p\u003e","function_template":"function B = warholer(A,t)\r\n  B = A;\r\nend","test_suite":"%%\r\nA = randi([51 255],[600 800 3]);\r\nt = [0 25 50];\r\nB = warholer(A,t);\r\nassert(all(B(:)==255))\r\n\r\n%%\r\nA = randi(100,[800 600 3]);\r\nt = [100 255 100];\r\nB = warholer(A,t);\r\nassert(all(B(:)==0))\r\n\r\n%%\r\nA = zeros(200,200,3);\r\nt = randi(255,1,3);\r\nB = warholer(A,t);\r\nassert(all(B(:)==0))\r\n\r\n%%\r\nA = 255*ones(100,100,3);\r\nt = randi(254,1,3);\r\nB = warholer(A,t);\r\nassert(all(B(:)==255))\r\n\r\n%%\r\nA(:,:,1) = randi([0 120],[480 320]);\r\nA(:,:,2) = randi([80 200],[480 320]);\r\nA(:,:,3) = randi([160 240],[480 320]);\r\nt = [150 50 150];\r\nB = warholer(A,t);\r\nassert(all(all(B(:,:,1)==0)))\r\nassert(all(all(B(:,:,2)==255)))\r\nassert(all(all(B(:,:,3)==255)))\r\n\r\n%%\r\nA(:,:,1) = randi([0 100],[480 320]);\r\nA(:,:,2) = randi([80 180],[480 320]);\r\nA(:,:,3) = randi([100 240],[480 320]);\r\nt = [180 60 250];\r\nB = warholer(A,t);\r\nassert(all(all(B(:,:,1)==0)))\r\nassert(all(all(B(:,:,2)==255)))\r\nassert(all(all(B(:,:,3)==0)))\r\n\r\n%%\r\nA(:,:,1) = magic(5)*10;\r\nA(:,:,2) = spiral(5)*10;\r\nA(:,:,3) = toeplitz(1:5)*50;\r\nt = [159 99 149];\r\nB_correct(:,:,1) = [255 255 0   0   0;\r\n                    255 0   0   0   255;\r\n                    0   0   0   255 255;\r\n                    0   0   255 255 0;\r\n                    0   255 255 0   0];\r\nB_correct(:,:,2) = [255 255 255 255 255;\r\n                    255 0   0   0   255;\r\n                    255 0   0   0   255;\r\n                    255 0   0   0   255;\r\n                    255 255 255 255 255];\r\nB_correct(:,:,3) = [0   0   255 255 255;\r\n                    0   0   0   255 255;\r\n                    255 0   0   0   255;\r\n                    255 255 0   0   0;\r\n                    255 255 255 0   0];\r\nassert(isequal(warholer(A,t),B_correct))\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":103,"test_suite_updated_at":"2013-08-05T02:37:21.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-03-20T23:26:39.000Z","updated_at":"2026-04-11T11:21:04.000Z","published_at":"2013-08-05T02:37:21.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem was inspired by a tweet I saw from @MATLAB regarding\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/fileexchange/37816-the-warholer?s_eid=PSM_3808\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eThe Warholer\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an MxNx3 array (A) representing an image and a threshold for each channel (r/g/b), generate a new array (B) whose elements are 255 if greater than the threshold for that channel or 0 otherwise. This means the new \\\"image\\\" will only have 8 colors.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou may assume that the inputs are on the interval [0,255].\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":818,"title":"Change a specific color in an image","description":"The ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\r\n\r\nAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].","description_html":"\u003cp\u003eThe ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\u003c/p\u003e\u003cp\u003eAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].\u003c/p\u003e","function_template":"function cdata_new = changeColor(cdata,c1,c2)\r\n  cdata_new = [];\r\nend","test_suite":"%%\r\nr = ones(100);\r\ng = zeros(100);\r\nb = zeros(100);\r\ncdata = cat(3,r,g,b);\r\nc1 = [1 0 0];\r\nc2 = [0 0 1];\r\ncdata_new = cat(3,b,g,r);\r\nassert(isequal(changeColor(cdata,c1,c2),cdata_new))\r\n\r\n%%\r\ncdata = rand([400,600,3])*0.9;\r\nc1 = [0 0.5 1];\r\nc2 = [1 1 1];\r\nassert(isequal(changeColor(cdata,c1,c2),cdata))\r\n\r\n%%\r\nind = randi(100,[50 1]);\r\nc1 = rand([1 3]); c1(3) = 0.95;\r\nc2 = [1 1 1];\r\ncdata = rand([100,1,3])*0.8;\r\ncdata_new = cdata;\r\nfor i=1:50\r\n    for j=1:3\r\n        cdata(ind(i),1,j) = c1(j);\r\n        cdata_new(ind(i),1,j) = c2(j);\r\n    end\r\nend\r\nassert(isequal(changeColor(cdata,c1,c2),cdata_new))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":4793,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":118,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2012-07-09T04:56:55.000Z","updated_at":"2026-04-14T15:22:39.000Z","published_at":"2012-07-09T05:00:53.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 ability to change colors can be a useful tool in image processing. Given an m x n x 3 array (much like CData in images), find all instances of a specific color (c1) and change those pixels to another color (c2). Both colors are inputs to the function. The output is the modified 3D array. If there are no instances of the color to be changed, the output will be the same as the input 3D array.\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\u003eAssume the class of all colors is double. So, for example, black is [0 0 0] and white is [1 1 1].\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":42849,"title":"RGB to CMYK","description":"Convert an RGB code to the corresponding CMYK code for printing.\r\n\r\n\r\nThe RGB input is a [1×3] double array between 0 and 1.\r\n\r\nCMYK must be a [1×4] double array between 0 and 1.","description_html":"\u003cp\u003eConvert an RGB code to the corresponding CMYK code for printing.\u003c/p\u003e\u003cp\u003eThe RGB input is a [1×3] double array between 0 and 1.\u003c/p\u003e\u003cp\u003eCMYK must be a [1×4] double array between 0 and 1.\u003c/p\u003e","function_template":"function CMYK = rgb2cmyk(RGB)\r\n  CMYK = RGB;\r\nend","test_suite":"%%\r\nRGB   = [0,0,0];\r\nCMYK  = [0,0,0,1];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,1,1];\r\nCMYK  = [0,0,0,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,0,0];\r\nCMYK  = [0,1,1,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [1,1,0];\r\nCMYK  = [0,0,1,0];\r\nassert(isequal(rgb2cmyk(RGB),CMYK))\r\n%%\r\nRGB   = [150,25,0]/255;\r\nCMYK  = [0,5/6,1,7/17];\r\nerror = abs(rgb2cmyk(RGB)-CMYK);\r\nassert(all(error\u003c1e-4))","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":12767,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":135,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-05-05T15:25:57.000Z","updated_at":"2026-04-11T10:25:57.000Z","published_at":"2016-05-05T15:26:16.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\u003eConvert an RGB code to the corresponding CMYK code for printing.\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\u003eThe RGB input is a [1×3] double array 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\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCMYK must be a [1×4] double array between 0 and 1.\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:\"color\"","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:\"color\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"color\"","","\"","color","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f2f42860ab0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f2f42860a10\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f2f42860150\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f2f42860d30\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f2f42860c90\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f2f42860bf0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f2f42860b50\u003e":"tag:\"color\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f2f42860b50\u003e":"tag:\"color\""},"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:\"color\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"color\"","","\"","color","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f2f42860ab0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f2f42860a10\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f2f42860150\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f2f42860d30\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f2f42860c90\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f2f42860bf0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f2f42860b50\u003e":"tag:\"color\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f2f42860b50\u003e":"tag:\"color\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":540,"difficulty_rating":"easy-medium"},{"id":1948,"difficulty_rating":"easy-medium"},{"id":1368,"difficulty_rating":"easy-medium"},{"id":818,"difficulty_rating":"easy-medium"},{"id":42849,"difficulty_rating":"easy-medium"}]}}