Hey Morten, even though its years later I want to give you my solution to this problem. I use the matlab function disperse (https://www.mathworks.com/matlabcentral/fileexchange/33866-disperse) which is availble on the File Exchange but should absoutely become a built in function.
disperse splits arrays into multiple output arguments. You can use it to conveniently get multple outputs from an anonymous function
f = @(x) disperse( [x, 2*x] )
[a, b] = f(1:10)
Nice pet example but lets do something useful with it.
Say we have a structure array, and we want to get the 3rd element from two vector members of that structure. We want to get them out as two arrays
[A, B] = arrayfun( @(s) disperse([ s.wavelength(3), s.absorption(3)]), data);
This one-liner avoids some ugly for-loop when all we want to do is slice our data structure in an unusual way.