Cody

Problem 44483. Separate even from odd numbers in a vector - without loops

Solution 2698745

Submitted on 15 Jul 2020
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
filetext = fileread('oddEven.m'); assert(isempty(strfind(filetext, 'regexp')),'regexp hacks are forbidden')

2   Pass
filetext = fileread('oddEven.m'); loopUsed = any(strfind(filetext, 'while')) || any(strfind(filetext, 'for')); assert(~loopUsed, 'Loops are forbidden')

3   Fail
v = []; w_correct = []; assert(isequal(oddEven(v),w_correct))

v = 0×1 empty double column vector y = 0×2 empty double matrix ans = 0×1 empty double column vector

Assertion failed.

4   Fail
v = [2; 7; 0; 3; 2]; w_correct = [7; 3; 2; 0; 2]; assert(isequal(oddEven(v),w_correct))

v = 2 7 0 3 2

Error using horzcat Dimensions of arrays being concatenated are not consistent. Error in oddEven (line 3) y = [v(rem(v,2)==1) v(rem(v,2)==0)] Error in Test4 (line 3) assert(isequal(oddEven(v),w_correct))

5   Fail
v = [1, 0, 2, 9, 3, 8, 8, 4]; w_correct = [1, 9, 3, 0, 2, 8, 8, 4]; assert(isequal(oddEven(v),w_correct))

v = 1 0 2 9 3 8 8 4

Error using horzcat Dimensions of arrays being concatenated are not consistent. Error in oddEven (line 3) y = [v(rem(v,2)==1) v(rem(v,2)==0)] Error in Test5 (line 3) assert(isequal(oddEven(v),w_correct))

6   Fail
odd = 2 * randi([-4, 4], 1, randi([4,10])) - 1; even = 2 * randi([-4, 4], 1, randi([4,10])); v = [even, odd]; w_correct = [odd, even]; assert(isequal(oddEven(v),w_correct))

v = -6 -4 -4 8 4 -4 6 2 8 2 7 5 1 -3 -3 -1 1

Error using horzcat Dimensions of arrays being concatenated are not consistent. Error in oddEven (line 3) y = [v(rem(v,2)==1) v(rem(v,2)==0)] Error in Test6 (line 5) assert(isequal(oddEven(v),w_correct))