Note if L has 5 non-zero elements, then length(X(L)) == 5.
I think L must be an array of booleans, not doubles.
For a matrix, see http://www.mathworks.com/help/matlab/math/matrix-indexing.html#bq7egb6-1
But here's a real illustration in my code:
step = 1/200;
steps = 2/step;
reruns=500;
% generate increments
%rng(0,'twister'); % if we want repeatable
incr = randn(steps,reruns)*sqrt(step);
std(incr) % should all be around 0.07
hist(incr(:,1))
% random walker positions
p = cumsum(incr);
% select a subset of Columns, using filter on
% "200th ROW and 400th ROW" so
% row expression = wildcard; column expression = filter on Row.
% If we carelessly swap the expressions, matlab won't warn us!
qualified = p(:, (p(200,:)>0 & p(400,:)>0));