Problem 801. Construct an index vector from two input vectors in vectorized fashion
Please do not check for the occurance of "for" in general, because "UniFORmOutput" has nothing to do with looping ;-)
Your predefined function signature has only one parameter, altough two were submitted. Same problem without the "for" restriction: http://www.mathworks.com/matlabcentral/cody/problems/555-low-high-low-high-turn-around-create-a-subindices-vector
This is an excellent problem.
I agree with Dirk. Change your regexp to check for instances of eval, for, and while that are not preceded or followed by additional letters.
give me a hint, should we use a specific function here?
Tip: replace UniformOutput with uni.
Actually arrayfun should also be outlawed, as that simply hides the loop at a performance cost. I haven't seen a vectorized solution yet, only recursions and implicit loops (and the usual cheat-submissions).
If you want a more robust cheat-detection you should have a separate test which runs as first test. That one should not call the submission to avoid it overwriting functions like fileread and assert.
I hate problems that disallow basic programming skills. Unless you know the one specific function that probably just does this for free, you have no idea how to solve it. And from the sounds of it, there isn't a vectorized solution anyway.
I wish you could peek at the functions in the solutions to see what people used.
Rik, your suggestion for a separate test case for cheat detection has been implemented. And ideally, arrayfun should be banned as well for the reason you have stated, but since author has not chosen to, I will refrain from doing so as well.
Also, I can say that the reference solution is a vectorized solution.
Brandon, the idea of such problems is to allow you to brainstorm through different methods, approaches and concepts, and in doing so, learn new programming techniques and/or functions. Without the restrictions, the problem would be extremely easy. And there are already problems with the same theme without any restrictions on Cody, you can explore and find them easily.
As I stated above, I can assure your there is atleast one vectorized solution.
A separate test case that tests for functions that are against the rules would improve this problem. In this case, the "for" in "UniformOutput" was getting caught by the search. A separate test case would have made clear that the solution functions properly but contains an outlawed string.
'Uniformoutput' is now valid, while as for OP's rules for loop is still not allowed.
Problem Recent Solvers346
Getting the indices from a vector
Put two time series onto the same time basis
Multiples of a Number in a Given Range
Rounding off numbers to n decimals
Matrix multiplication across rows
More from this Author3
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!