Dealfun (1.0) - MATLAB Cody - MATLAB Central

Problem 2170. Dealfun (1.0)

Difficulty:Rate

Short description.

Write a function dealfun:

[y1,y2,...,yn]=dealfun(fhandle,x1,x2,...,xn)

which evaluates the function handle fhandle on arguments x1,x2,...,xn independently and deal solutions to outputs y1,y2,...,yn (so nargin==nargout+1)

Long description.

Several repetitions of exacly same operation on different variables can be a pain in the neck when you are editing your code.

a=a^2+mod(a,3);       a=a^3+4*a+mod(a,3);
b=b^2+mod(a,3);  -->  b=b^3+4*a+mod(a,3);
c=c^2+mod(a,3);       c=c^3+4*a+mod(a,3);
d=d^2+mod(a,3);       d=d^3+4*a+mod(a,3);

Of course there are as many strategies as programmers. There are also many helpful functions like cellfun arrayfun deal feval. But sometimes usage of those functions in one line looks unclear and it doesn't make editing faster. Usage of dealfun could look like that:

funh=@(A)A^2+mod(A,3);   -->   funh=@(A)A^3+4*A+mod(A,3);
[a,b,c,d]=dealfun(@funh,a,b,c,d);

example:

>> [a,b,c,d]=dealfun(@sum,ones(1),ones(2),ones(3),ones(4))
a =  1
b =  2     2
c =  3     3     3
d =  4     4     4     4

easy change:

>> [a,b,c,d]=dealfun(@numel,ones(1),ones(2),ones(3),ones(4))
a =  1
b =  4
c =  9
d =  16

Solution Stats

62.26% Correct | 37.74% Incorrect
Last Solution submitted on May 10, 2025

Problem Comments

Solution Comments

Show comments
PIVlab surpasses 100K all-time File Exchange downloads
During the past twelve months, PIVlab, a MATLAB Community Toolbox for particle...
4
8
LLMs with MATLAB updated to support the latest OpenAI Models
Large Languge model with MATLAB, a free add-on that lets you access...
2
4

Problem Recent Solvers29

Suggested Problems

More from this Author40

Community Treasure Hunt

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

Start Hunting!
Go to top of page