% mzip - Apply array to multiple index arrays
% 
% mzip :: [[N,M]->D], [[L]->[N]], [[L]->[M]] -> [[L]->D].
%
% The name mzip is meant to suggest Matrix or Multiple Zip,
% with zip referring to the functional programming sort of 
% zip where you can apply a function of N arguments to N
% lists of arguments and get a list of return values.
% eg, mzip(x,[2 4 1],[3 2 2]) = [x(2,3) x(4,2) x(1,2)].

function B=mzip(A,varargin), B=A(sub2ind(size(A),varargin{:}));


