MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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.

57 correct solutions
53 incorrect solutions

Last solution submitted on Jan 20, 2015

1 Comment

Raphael Cautain
on 27 Feb 2012

There may have some limitations when resulting rows are with different lengthes.

1 Comment