Problem 733. Extract Built In Functions and Toolbox Functions from String or Function Handle

Solution 3476094

Submitted on 30 Oct 2020 at 7:18
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
fh_str='log2(x)+smooth3(x,y)+abs(2)+log10(5)'; exp_str='abs log10 log2 smooth3'; assert(isequal(find_functions(fh_str),exp_str))

2   Fail
fh_str='for k=log10(x):log2(x)+abs(x)'; exp_str='abs for log10 log2'; assert(isequal(find_functions(fh_str),exp_str))

Assertion failed.

3   Fail
fh_str=@(x)x^2+sin(x)-cos(x); exp_str='cos sin'; assert(isequal(find_functions(fh_str),exp_str))

Undefined function 'eq' for input arguments of type 'function_handle'. Error in find_functions (line 2) q1=find(fh_str == '('); Error in Test3 (line 3) assert(isequal(find_functions(fh_str),exp_str))

4   Fail
fh_str='@(x)x^2+sin(x)-cos(x)'; exp_str='cos sin'; assert(isequal(find_functions(fh_str),exp_str))

Array indices must be positive integers or logical values. Error in find_functions (line 25) if sum(find(num == fh_str2{p4}(end)))>1 Error in Test4 (line 3) assert(isequal(find_functions(fh_str),exp_str))

5   Pass
fh_str='filter2(x,A)+filter(x)-cos(x) expm(z)'; exp_str='cos filter expm filter2'; assert(isequal(find_functions(fh_str),exp_str))

6   Pass
fh_str='smooth3(x,y)-filter(x)+abs(n)+filter2(u)+sin(x)+numel(z)'; exp_str='abs filter numel sin filter2 smooth3'; assert(isequal(find_functions(fh_str),exp_str))

Suggested Problems

More from this Author246

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!