Problem 464. Function Sniffer
The test suite is a little soft. I feel the addition of 'for i=log2(2):abs(n^2-n)', which should yield 'for log2' would stymie almost all the solutions provided.
In my opinion, the Cody problems should expand Matlab understanding not cause frustration in search of obscure functions. To this end, I think the tags should include regexp, symvar, cellfun, sprintf, exist, unique, and cell2mat. Learning the usage of these functions is one purpose of Cody.
also operands like +,-,/,*,.*,~,|,& etc. are treated by Matlab as builtin functions, so in my opinion test case 2 answer sholud be ': sqrt sum' and for test case 3 '- ones rand round'
Imho, operators (+,-,&,etc) are a special kind of function in which parameters are arranged in a certain order. The problem does not need to cover them. And again imho, for and if should not even be considered functions, but structures of repetition and control respectively, because they are built-in hardware (and it's how computers work). Moreover they are not mapping values from a set into another as in Math. Finally "functions" that have no output value should be called procedures (such as reset, delete, and disp).
PS: Some operators, these special functions, are also built-in hardware.
Nice...unfortunately, it is not a general solution. For example: if 'x = ones(round(7.7)) - rand + b;', then this code will sniff y = 'b ones rand'.
you found it huh?:) no,it's not a general solution, I built it base on test suite.
Problem Recent Solvers37
More from this Author100
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!