Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!

Problem 2170. Dealfun (1.0)

Created by Jan Orwat

Short description.

Write a function dealfun:


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(@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


Problem Group

Solution Statistics

14 correct solutions 5 incorrect solutions
Last solution submitted on Mar 26, 2016

Problem Comments

Solution Comments