# vecfun

Version 1.1.0.0 (1.67 KB) by
Applies a function to each entry of an N-dimensional array comprised of vectors.
Updated 20 Feb 2012

M = vecfun (f, A, dim)

vecfun applies a function f with column vector input to an N-dimensional array:

A: size [d1,d2, ... ,dD]

where one of the dimensions of A is comprised of possible vector inputs into f, and f returns an array of P elements.

Therefore, the output of vecfun applied to f on A along dimension dim will be of the same number of dimensions as A and have:

M: size [d1,d2, ... , P , ... , dD]

where d[dim] = P.

Example:

A = randn(2,3,5,7);
f = @(p) [p(1)+p(2);p(2)+p(3); ...
p(3)+p(4);p(4)+p(5)];
% f takes a five element column vector p
% and returns a four element output
M = vecfun(f,A,3);
size(M)

% returns [2,3,4,7]
% f:R5 -> R4 has acted along the third
% dimension of A as required.

*****
See also my function `chooseargs' (ID 35115) which works well in conjunction with vecfun.
*****

Example of combined usage:

A=randn(20,5);
Ai=zeros(20,1);
for k=1:20
[~,Aik]=min(A(k,:));
Ai(k)=Aik;
end

can be replaced with:

Ai=vecfun(@(s) chooseargs(@min,2,[],s),A,2);

*****

### Cite As

Adam Gripton (2024). vecfun (https://www.mathworks.com/matlabcentral/fileexchange/35086-vecfun), MATLAB Central File Exchange. Retrieved .

##### MATLAB Release Compatibility
Created with R2011b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux
##### Categories
Find more on Matrices and Arrays in Help Center and MATLAB Answers