Cody often benefits from a functional style of programming. For example, your score is often better when you compose multiple functions instead of using intermediate variables. This problem involves creating a function to expand the repertoire of "functional functions."
For this problem, write a filter function that applies a "predicate" function to a numeric, character, or cell vector and returns the elements for which the predicate returns true. Here are few examples:
filterfun(@isprime, 1:10) ==> [2 3 5 7]
filterfun(@(c)c~='a', 'kayak radar') ==> 'kyk rdr'
filterfun(@(x)~isempty(x), {[]; 1; 'a'; []; {}}') ==> {1; 'a'}
Notes: If the vector v is a cell, you should apply the predicate to v{i} not v(i). Also, filterfun should preserve the singleton dimension of the vector, i.e. if the input vector is a column vector the output should be a column vector.
Solution Stats
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers73
Suggested Problems
-
Make a random, non-repeating vector.
11217 Solvers
-
Vectorize the digits of an Integer
338 Solvers
-
Cell Counting: How Many Draws?
2389 Solvers
-
Find out missing number from a vector of 9 elements
321 Solvers
-
Number of odd and even elements within matrix
160 Solvers
More from this Author1
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
I think the third example in the problem statement is incorrect. The input is a row (it's set up as a column, but then is transposed), but the output is a column.