view general/cellutils/cellfilt.m @ 13:03694e5c8365

Reorganised some high order list functions to correct class-based method dispatch; fixed some docs.
author samer
date Wed, 16 Jan 2013 12:12:34 +0000
parents e44f49929e56
children
line wrap: on
line source
function Y=cellfilt(fn,X)
% cellfilt - Filter cell array with boolean test
%
% cellfilt :: (A->bool), {[N]->A} -> {[M]->A}.
% cellfilt :: (A->bool), {[1,N]->A} -> {[1,M]->A}.
%
% eg, cellfilt(@iseven,{1,2,3,4}) = {2,4}

% SA 2008-06-27 - Now returns cell array with same orientation as input

Y={};
[X,E]=shiftdim(X);
for i=1:numel(X)
	if fn(X{i}), Y=vertcat(Y,X(i)); end
end
Y=shiftdim(Y,E);