{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":44434,"title":"Writing Error Messages","description":"Well written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\r\n\r\n* a - a scalar value\r\n* b - either a string, or a character array\r\n* c - a square matrix (numerical array)\r\n\r\nIf the input is anything other then this, throw the error message \r\n\r\n'Cody demonstration error'\r\n\r\nIf the input is good, simply return 23.","description_html":"\u003cp\u003eWell written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\u003c/p\u003e\u003cul\u003e\u003cli\u003ea - a scalar value\u003c/li\u003e\u003cli\u003eb - either a string, or a character array\u003c/li\u003e\u003cli\u003ec - a square matrix (numerical array)\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eIf the input is anything other then this, throw the error message\u003c/p\u003e\u003cp\u003e'Cody demonstration error'\u003c/p\u003e\u003cp\u003eIf the input is good, simply return 23.\u003c/p\u003e","function_template":"function y = ErrorCheck(a,b,c)\r\n  y = 23;\r\nend","test_suite":"%%\r\na = 1;\r\nb = 'hi there';\r\nc = [1 0; 0 1];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(isequal(j,23))\r\nclear ME\r\n%%\r\na = randi(50);\r\nb = 'aaaa';\r\nfor i = 1:4\r\n    b(i) = b(i) + randi(26) - 1;\r\nend\r\nc = randi(50,10,10);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(j == 23)\r\nclear ME\r\n%%\r\na = '13';\r\nb = 'I live for math.';\r\nc = zeros(15);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = pi;\r\nb = @(x)x^2;\r\nc = zeros(15);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = 1e53;\r\nb = 'Life Before Death!';\r\nc = [1 2 3; 4 5 6];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = 1e53;\r\nb = 'This is a string';\r\nc = \"Journey Before Destination\";\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = log(27);\r\nb = \"This is a string too\";\r\nc = [];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(j == 23)\r\nclear ME","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":169653,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-12-02T22:11:35.000Z","updated_at":"2026-03-16T12:48:47.000Z","published_at":"2017-12-02T22:18:59.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\u003eWell written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea - a scalar value\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb - either a string, or a character array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ec - a square matrix (numerical 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the input is anything other then this, throw the error message\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'Cody demonstration error'\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 the input is good, simply return 23.\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":44357,"title":"Back to basics:  throwing errors / exceptions","description":"*Throwing and handling errors (or exceptions) is an important part of practical programming.*  \r\n\r\nHere your task is to provide an alternative to the built in elementwise division operator *./* (equivalent to the \u003chttp://au.mathworks.com/help/fixedpoint/ref/rdivide.html rdivide\u003e function) with the following differences:\r\n\r\n# throws an error if _any_ of the input elements have a non-zero \u003chttps://en.wikipedia.org/wiki/Imaginary_number imaginary component\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\r\n# throws an error if _any_ of the input elements are \u003chttp://au.mathworks.com/help/matlab/ref/char.html character arrays\u003e;\r\n# yields \u003chttp://au.mathworks.com/help/matlab/ref/nan.html NaN\u003e wherever the divisor (i.e. the denominator) is equal to zero.\r\n\r\nThis concept is analogous to the built in MATLAB function \u003chttp://au.mathworks.com/help/matlab/ref/realsqrt.html \"realsqrt\"\u003e.\r\n\r\nThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\r\n\r\nThe second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\r\n\r\nAll other behaviour should be identical to the mrdivide function.  Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.  \r\n\r\nNote that the difference in MATLAB between \u003chttp://au.mathworks.com/help/matlab/ref/error.html errors\u003e and \u003chttp://au.mathworks.com/help/matlab/ref/mexception-class.html exceptions\u003e is \u003chttps://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception somewhat fraught\u003e.  ","description_html":"\u003cp\u003e\u003cb\u003eThrowing and handling errors (or exceptions) is an important part of practical programming.\u003c/b\u003e\u003c/p\u003e\u003cp\u003eHere your task is to provide an alternative to the built in elementwise division operator \u003cb\u003e./\u003c/b\u003e (equivalent to the \u003ca href = \"http://au.mathworks.com/help/fixedpoint/ref/rdivide.html\"\u003erdivide\u003c/a\u003e function) with the following differences:\u003c/p\u003e\u003col\u003e\u003cli\u003ethrows an error if \u003ci\u003eany\u003c/i\u003e of the input elements have a non-zero \u003ca href = \"https://en.wikipedia.org/wiki/Imaginary_number\"\u003eimaginary component\u003c/a\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\u003c/li\u003e\u003cli\u003ethrows an error if \u003ci\u003eany\u003c/i\u003e of the input elements are \u003ca href = \"http://au.mathworks.com/help/matlab/ref/char.html\"\u003echaracter arrays\u003c/a\u003e;\u003c/li\u003e\u003cli\u003eyields \u003ca href = \"http://au.mathworks.com/help/matlab/ref/nan.html\"\u003eNaN\u003c/a\u003e wherever the divisor (i.e. the denominator) is equal to zero.\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eThis concept is analogous to the built in MATLAB function \u003ca href = \"http://au.mathworks.com/help/matlab/ref/realsqrt.html\"\u003e\"realsqrt\"\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\u003c/p\u003e\u003cp\u003eThe second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\u003c/p\u003e\u003cp\u003eAll other behaviour should be identical to the mrdivide function.  Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.\u003c/p\u003e\u003cp\u003eNote that the difference in MATLAB between \u003ca href = \"http://au.mathworks.com/help/matlab/ref/error.html\"\u003eerrors\u003c/a\u003e and \u003ca href = \"http://au.mathworks.com/help/matlab/ref/mexception-class.html\"\u003eexceptions\u003c/a\u003e is \u003ca href = \"https://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception\"\u003esomewhat fraught\u003c/a\u003e.\u003c/p\u003e","function_template":"function q = realDivision(a, b)\r\n    q = realsqrt(a, b);\r\nend","test_suite":"%% Test 1\r\na = 10;\r\nb = 5;\r\n%disp(a ./ b)\r\nq_correct = 2;\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 2\r\na = [100:2:300; 400:2:600];\r\nb = 2;\r\n%disp(a ./ b)\r\nq_correct = [50:150; 200:300];\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 3\r\na = 24;\r\nb = [1 2 3 4 6 8 12 24];\r\n%disp(a ./ b)\r\nq_correct = [24 12 8 6 4 3 2 1];\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 4\r\na = sqrt(-4);\r\nb = 2;\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:complexInput';\r\ne_correct.message = 'The realDivision function only operates on real inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 5\r\na = 12 * randi(8, 10);\r\nb = randi(4, 10);\r\nrNum = randi(10);\r\ncNum = randi(10);\r\ncplx = 12 * randi(8) * sqrt(-1);\r\nif rand() \u003c 0.5, \r\n    a(rNum, cNum) = a(rNum, cNum) + cplx;\r\nelse\r\n    b(rNum, cNum) = b(rNum, cNum) - cplx;\r\nend;\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:complexInput';\r\ne_correct.message = 'The realDivision function only operates on real inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 6\r\na = 'MATLAB';\r\nb = 'coding';\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:incompatibleInput';\r\ne_correct.message = 'The realDivision function is not defined for character inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 7\r\na = 'MATLAB';\r\nb = 'Cody';\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:incompatibleInput';\r\ne_correct.message = 'The realDivision function is not defined for character inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 8\r\na = \"Computing\";\r\nb = \"Algorithm\";\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'string'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 9\r\na = {1, 7, 3};\r\nb = {4, 8, 9};\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'cell'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 10\r\na.itemOne = 10;\r\na.itemTwo = 20;\r\nb.itemOne = 5;\r\nb.itemTwo = 15;\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'struct'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 11\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nrNum = randi(10);\r\ncNum = randi(10);\r\nb(rNum, cNum) = nan;\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq_correct(rNum, cNum) = NaN;\r\nq = realDivision(a, b);\r\nassert( isequal(q(~isnan(q)), q_correct(~isnan(q_correct))) )\r\nassert( isequal(size(q), size(q_correct)) )\r\nassert( isequal(isnan(q), isnan(q_correct)) )\r\n\r\n\r\n%% Test 12\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nrNum = randi(10);\r\ncNum = randi(10);\r\nb(rNum, cNum) = 0;\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq_correct(rNum, cNum) = nan;\r\nq = realDivision(a, b);\r\nassert( isequal(q(~isnan(q)), q_correct(~isnan(q_correct))) )\r\nassert( isequal(size(q), size(q_correct)) )\r\nassert( isequal(isnan(q), isnan(q_correct)) )\r\n\r\n\r\n%% Test 13\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nidxNum = randi(100, [1, 5]);\r\nb(idxNum) = complex( b(idxNum) );\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%%\r\n% The first error must generate an MException with the following properties: \r\n% identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\r\n% \r\n% The second error must generate an MException with the following properties: \r\n% identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2017-10-05T10:41:09.000Z","rescore_all_solutions":false,"group_id":677,"created_at":"2017-10-03T13:05:21.000Z","updated_at":"2019-05-02T17:03:22.000Z","published_at":"2017-10-04T05:08:09.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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThrowing and handling errors (or exceptions) is an important part of practical programming.\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\u003eHere your task is to provide an alternative to the built in elementwise division operator\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e./\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (equivalent to the\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://au.mathworks.com/help/fixedpoint/ref/rdivide.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003erdivide\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function) with the following differences:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethrows an error if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eany\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of the input elements have a non-zero\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=\\\"https://en.wikipedia.org/wiki/Imaginary_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eimaginary component\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethrows an error if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eany\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of the input elements are\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://au.mathworks.com/help/matlab/ref/char.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003echaracter arrays\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=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eyields\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://au.mathworks.com/help/matlab/ref/nan.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eNaN\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e wherever the divisor (i.e. the denominator) is equal to zero.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis concept is analogous to the built in MATLAB function\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://au.mathworks.com/help/matlab/ref/realsqrt.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\\\"realsqrt\\\"\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\u003eThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput', message = 'The realDivision function only operates on real inputs.'.\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 second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput', message = 'The realDivision function is not defined for character inputs.'.\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\u003eAll other behaviour should be identical to the mrdivide function. Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.\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\u003eNote that the difference in MATLAB between\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://au.mathworks.com/help/matlab/ref/error.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eerrors\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\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://au.mathworks.com/help/matlab/ref/mexception-class.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eexceptions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception\\\"\u003e\u003cw:r\u003e\u003cw:t\u003esomewhat fraught\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":44434,"title":"Writing Error Messages","description":"Well written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\r\n\r\n* a - a scalar value\r\n* b - either a string, or a character array\r\n* c - a square matrix (numerical array)\r\n\r\nIf the input is anything other then this, throw the error message \r\n\r\n'Cody demonstration error'\r\n\r\nIf the input is good, simply return 23.","description_html":"\u003cp\u003eWell written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\u003c/p\u003e\u003cul\u003e\u003cli\u003ea - a scalar value\u003c/li\u003e\u003cli\u003eb - either a string, or a character array\u003c/li\u003e\u003cli\u003ec - a square matrix (numerical array)\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eIf the input is anything other then this, throw the error message\u003c/p\u003e\u003cp\u003e'Cody demonstration error'\u003c/p\u003e\u003cp\u003eIf the input is good, simply return 23.\u003c/p\u003e","function_template":"function y = ErrorCheck(a,b,c)\r\n  y = 23;\r\nend","test_suite":"%%\r\na = 1;\r\nb = 'hi there';\r\nc = [1 0; 0 1];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(isequal(j,23))\r\nclear ME\r\n%%\r\na = randi(50);\r\nb = 'aaaa';\r\nfor i = 1:4\r\n    b(i) = b(i) + randi(26) - 1;\r\nend\r\nc = randi(50,10,10);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(j == 23)\r\nclear ME\r\n%%\r\na = '13';\r\nb = 'I live for math.';\r\nc = zeros(15);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = pi;\r\nb = @(x)x^2;\r\nc = zeros(15);\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = 1e53;\r\nb = 'Life Before Death!';\r\nc = [1 2 3; 4 5 6];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = 1e53;\r\nb = 'This is a string';\r\nc = \"Journey Before Destination\";\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(strcmp(ME.message,'Cody demonstration error'))\r\nclear ME\r\n%%\r\na = log(27);\r\nb = \"This is a string too\";\r\nc = [];\r\ntry\r\n    j = ErrorCheck(a,b,c);\r\ncatch ME\r\n    j = NaN;\r\nend\r\nassert(j == 23)\r\nclear ME","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":169653,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":14,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2017-12-02T22:11:35.000Z","updated_at":"2026-03-16T12:48:47.000Z","published_at":"2017-12-02T22:18:59.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\u003eWell written functions check inputs to make sure the input is valid. The function ErrorCheck takes three arguments:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea - a scalar value\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eb - either a string, or a character array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ec - a square matrix (numerical 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\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the input is anything other then this, throw the error message\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'Cody demonstration error'\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 the input is good, simply return 23.\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":44357,"title":"Back to basics:  throwing errors / exceptions","description":"*Throwing and handling errors (or exceptions) is an important part of practical programming.*  \r\n\r\nHere your task is to provide an alternative to the built in elementwise division operator *./* (equivalent to the \u003chttp://au.mathworks.com/help/fixedpoint/ref/rdivide.html rdivide\u003e function) with the following differences:\r\n\r\n# throws an error if _any_ of the input elements have a non-zero \u003chttps://en.wikipedia.org/wiki/Imaginary_number imaginary component\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\r\n# throws an error if _any_ of the input elements are \u003chttp://au.mathworks.com/help/matlab/ref/char.html character arrays\u003e;\r\n# yields \u003chttp://au.mathworks.com/help/matlab/ref/nan.html NaN\u003e wherever the divisor (i.e. the denominator) is equal to zero.\r\n\r\nThis concept is analogous to the built in MATLAB function \u003chttp://au.mathworks.com/help/matlab/ref/realsqrt.html \"realsqrt\"\u003e.\r\n\r\nThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\r\n\r\nThe second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\r\n\r\nAll other behaviour should be identical to the mrdivide function.  Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.  \r\n\r\nNote that the difference in MATLAB between \u003chttp://au.mathworks.com/help/matlab/ref/error.html errors\u003e and \u003chttp://au.mathworks.com/help/matlab/ref/mexception-class.html exceptions\u003e is \u003chttps://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception somewhat fraught\u003e.  ","description_html":"\u003cp\u003e\u003cb\u003eThrowing and handling errors (or exceptions) is an important part of practical programming.\u003c/b\u003e\u003c/p\u003e\u003cp\u003eHere your task is to provide an alternative to the built in elementwise division operator \u003cb\u003e./\u003c/b\u003e (equivalent to the \u003ca href = \"http://au.mathworks.com/help/fixedpoint/ref/rdivide.html\"\u003erdivide\u003c/a\u003e function) with the following differences:\u003c/p\u003e\u003col\u003e\u003cli\u003ethrows an error if \u003ci\u003eany\u003c/i\u003e of the input elements have a non-zero \u003ca href = \"https://en.wikipedia.org/wiki/Imaginary_number\"\u003eimaginary component\u003c/a\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\u003c/li\u003e\u003cli\u003ethrows an error if \u003ci\u003eany\u003c/i\u003e of the input elements are \u003ca href = \"http://au.mathworks.com/help/matlab/ref/char.html\"\u003echaracter arrays\u003c/a\u003e;\u003c/li\u003e\u003cli\u003eyields \u003ca href = \"http://au.mathworks.com/help/matlab/ref/nan.html\"\u003eNaN\u003c/a\u003e wherever the divisor (i.e. the denominator) is equal to zero.\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eThis concept is analogous to the built in MATLAB function \u003ca href = \"http://au.mathworks.com/help/matlab/ref/realsqrt.html\"\u003e\"realsqrt\"\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\u003c/p\u003e\u003cp\u003eThe second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\u003c/p\u003e\u003cp\u003eAll other behaviour should be identical to the mrdivide function.  Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.\u003c/p\u003e\u003cp\u003eNote that the difference in MATLAB between \u003ca href = \"http://au.mathworks.com/help/matlab/ref/error.html\"\u003eerrors\u003c/a\u003e and \u003ca href = \"http://au.mathworks.com/help/matlab/ref/mexception-class.html\"\u003eexceptions\u003c/a\u003e is \u003ca href = \"https://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception\"\u003esomewhat fraught\u003c/a\u003e.\u003c/p\u003e","function_template":"function q = realDivision(a, b)\r\n    q = realsqrt(a, b);\r\nend","test_suite":"%% Test 1\r\na = 10;\r\nb = 5;\r\n%disp(a ./ b)\r\nq_correct = 2;\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 2\r\na = [100:2:300; 400:2:600];\r\nb = 2;\r\n%disp(a ./ b)\r\nq_correct = [50:150; 200:300];\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 3\r\na = 24;\r\nb = [1 2 3 4 6 8 12 24];\r\n%disp(a ./ b)\r\nq_correct = [24 12 8 6 4 3 2 1];\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%% Test 4\r\na = sqrt(-4);\r\nb = 2;\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:complexInput';\r\ne_correct.message = 'The realDivision function only operates on real inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 5\r\na = 12 * randi(8, 10);\r\nb = randi(4, 10);\r\nrNum = randi(10);\r\ncNum = randi(10);\r\ncplx = 12 * randi(8) * sqrt(-1);\r\nif rand() \u003c 0.5, \r\n    a(rNum, cNum) = a(rNum, cNum) + cplx;\r\nelse\r\n    b(rNum, cNum) = b(rNum, cNum) - cplx;\r\nend;\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:complexInput';\r\ne_correct.message = 'The realDivision function only operates on real inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 6\r\na = 'MATLAB';\r\nb = 'coding';\r\n%disp(a ./ b)\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    %disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:incompatibleInput';\r\ne_correct.message = 'The realDivision function is not defined for character inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 7\r\na = 'MATLAB';\r\nb = 'Cody';\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\ne_correct.identifier = 'realDivision:incompatibleInput';\r\ne_correct.message = 'The realDivision function is not defined for character inputs.';\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 8\r\na = \"Computing\";\r\nb = \"Algorithm\";\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'string'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 9\r\na = {1, 7, 3};\r\nb = {4, 8, 9};\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'cell'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 10\r\na.itemOne = 10;\r\na.itemTwo = 20;\r\nb.itemOne = 5;\r\nb.itemTwo = 15;\r\ne_correct.identifier = 'MATLAB:UndefinedFunction';\r\ne_correct.message = char(\"Undefined function 'rdivide' for input arguments of type 'struct'.\");\r\ne = [];\r\ntry\r\n    realDivision(a, b)\r\ncatch err\r\n    disp(err); disp(err.stack);\r\n    e = err;\r\nend;\r\n%assert( isequal(e, e_correct) )\r\nassert( isequal(e.identifier, e_correct.identifier) )\r\nassert( isequal(e.message, e_correct.message) )\r\n\r\n\r\n%% Test 11\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nrNum = randi(10);\r\ncNum = randi(10);\r\nb(rNum, cNum) = nan;\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq_correct(rNum, cNum) = NaN;\r\nq = realDivision(a, b);\r\nassert( isequal(q(~isnan(q)), q_correct(~isnan(q_correct))) )\r\nassert( isequal(size(q), size(q_correct)) )\r\nassert( isequal(isnan(q), isnan(q_correct)) )\r\n\r\n\r\n%% Test 12\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nrNum = randi(10);\r\ncNum = randi(10);\r\nb(rNum, cNum) = 0;\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq_correct(rNum, cNum) = nan;\r\nq = realDivision(a, b);\r\nassert( isequal(q(~isnan(q)), q_correct(~isnan(q_correct))) )\r\nassert( isequal(size(q), size(q_correct)) )\r\nassert( isequal(isnan(q), isnan(q_correct)) )\r\n\r\n\r\n%% Test 13\r\nratio = randi(11) + 1;\r\nb = randi(8, 10);\r\na = ratio * b;\r\nidxNum = randi(100, [1, 5]);\r\nb(idxNum) = complex( b(idxNum) );\r\n%disp(a ./ b)\r\nq_correct = ratio * ones(10);\r\nq = realDivision(a, b);\r\nassert( isequal(q, q_correct) )\r\n\r\n\r\n%%\r\n% The first error must generate an MException with the following properties: \r\n% identifier = 'realDivision:complexInput',  message = 'The realDivision function only operates on real inputs.'.\r\n% \r\n% The second error must generate an MException with the following properties: \r\n% identifier = 'realDivision:incompatibleInput',  message = 'The realDivision function is not defined for character inputs.'.\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2017-10-05T10:41:09.000Z","rescore_all_solutions":false,"group_id":677,"created_at":"2017-10-03T13:05:21.000Z","updated_at":"2019-05-02T17:03:22.000Z","published_at":"2017-10-04T05:08:09.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:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eThrowing and handling errors (or exceptions) is an important part of practical programming.\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\u003eHere your task is to provide an alternative to the built in elementwise division operator\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e./\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (equivalent to the\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://au.mathworks.com/help/fixedpoint/ref/rdivide.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003erdivide\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e function) with the following differences:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethrows an error if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eany\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of the input elements have a non-zero\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=\\\"https://en.wikipedia.org/wiki/Imaginary_number\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eimaginary component\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e (and are therefore 'complex numbers' that are incapable of being correctly represented as real numbers);\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethrows an error if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eany\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e of the input elements are\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://au.mathworks.com/help/matlab/ref/char.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003echaracter arrays\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=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eyields\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://au.mathworks.com/help/matlab/ref/nan.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eNaN\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e wherever the divisor (i.e. the denominator) is equal to zero.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis concept is analogous to the built in MATLAB function\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://au.mathworks.com/help/matlab/ref/realsqrt.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\\\"realsqrt\\\"\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\u003eThe first error must generate an MException with the following properties: identifier = 'realDivision:complexInput', message = 'The realDivision function only operates on real inputs.'.\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 second error must generate an MException with the following properties: identifier = 'realDivision:incompatibleInput', message = 'The realDivision function is not defined for character inputs.'.\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\u003eAll other behaviour should be identical to the mrdivide function. Any exceptions that would have been thrown by mrdivide should also be thrown by your function — with the same contents of the identifier and message fields.\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\u003eNote that the difference in MATLAB between\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://au.mathworks.com/help/matlab/ref/error.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eerrors\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\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://au.mathworks.com/help/matlab/ref/mexception-class.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eexceptions\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/matlabcentral/answers/116197-there-seems-to-be-two-different-methods-of-error-handling-in-matlab-error-handling-and-exception\\\"\u003e\u003cw:r\u003e\u003cw:t\u003esomewhat fraught\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"exceptions\"","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:\"exceptions\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"exceptions\"","","\"","exceptions","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1949b0dc18\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1949b0db78\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1949b0d2b8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1949b0de98\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1949b0ddf8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1949b0dd58\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1949b0dcb8\u003e":"tag:\"exceptions\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1949b0dcb8\u003e":"tag:\"exceptions\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"exceptions\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"exceptions\"","","\"","exceptions","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1949b0dc18\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1949b0db78\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1949b0d2b8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1949b0de98\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1949b0ddf8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1949b0dd58\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1949b0dcb8\u003e":"tag:\"exceptions\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1949b0dcb8\u003e":"tag:\"exceptions\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":44434,"difficulty_rating":"easy-medium"},{"id":44357,"difficulty_rating":"medium"}]}}