Problem 214. Filter values in a vector

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

42.34% Correct | 57.66% Incorrect
Last Solution submitted on Mar 03, 2023

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers71

Suggested Problems

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!