Home > FMAToolbox > General > FindInInterval.m

FindInInterval

PURPOSE ^

FindInInterval - Find values that fall in a given interval.

SYNOPSIS ^

This is a script file.

DESCRIPTION ^

FindInInterval - Find values that fall in a given interval.

  The equivalent Matlab code is trivial

      i = find(values(:,1)>=interval(1)&values(:,1)<=interval(2));
      indices = [i(1),i(end)];

  but becomes extremely slow when dealing with very large lists.
  This function can dramatically speed up things whenever one needs
  to repeatedly find values in a long list of intervals.

  USAGE

    indices = FindInInterval(values,interval,from)

    values         values to test, sorted in ascending order
    interval       [start,stop] pair
    from           optional initial index (see example below)

  OUTPUT

    indices        indices of the first and last values that fall
                   in the interval

  EXAMPLE

    This code assumes that the variable 'interval' contains a list
    of non-overlapping intervals sorted in ascending order,
    i.e. interval(i+1,1) >= interval(i,2).

    previous = 1;
    for i = 1:n,
       % Find values within this window
       j = FindInInterval(values,interval(i,:),previous);
       previous = j(1);
       % ... do whatever computations here ...
    end

  SEE

    See also ConsolidateIntervals, SubtractIntervals, ExcludeIntervals,
    InIntervals, Restrict, CountInIntervals, PlotIntervals.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %FindInInterval - Find values that fall in a given interval.
0002 %
0003 %  The equivalent Matlab code is trivial
0004 %
0005 %      i = find(values(:,1)>=interval(1)&values(:,1)<=interval(2));
0006 %      indices = [i(1),i(end)];
0007 %
0008 %  but becomes extremely slow when dealing with very large lists.
0009 %  This function can dramatically speed up things whenever one needs
0010 %  to repeatedly find values in a long list of intervals.
0011 %
0012 %  USAGE
0013 %
0014 %    indices = FindInInterval(values,interval,from)
0015 %
0016 %    values         values to test, sorted in ascending order
0017 %    interval       [start,stop] pair
0018 %    from           optional initial index (see example below)
0019 %
0020 %  OUTPUT
0021 %
0022 %    indices        indices of the first and last values that fall
0023 %                   in the interval
0024 %
0025 %  EXAMPLE
0026 %
0027 %    This code assumes that the variable 'interval' contains a list
0028 %    of non-overlapping intervals sorted in ascending order,
0029 %    i.e. interval(i+1,1) >= interval(i,2).
0030 %
0031 %    previous = 1;
0032 %    for i = 1:n,
0033 %       % Find values within this window
0034 %       j = FindInInterval(values,interval(i,:),previous);
0035 %       previous = j(1);
0036 %       % ... do whatever computations here ...
0037 %    end
0038 %
0039 %  SEE
0040 %
0041 %    See also ConsolidateIntervals, SubtractIntervals, ExcludeIntervals,
0042 %    InIntervals, Restrict, CountInIntervals, PlotIntervals.
0043 
0044 % Copyright (C) 2004-2015 by Michaƫl Zugaro
0045 %
0046 % This program is free software; you can redistribute it and/or modify
0047 % it under the terms of the GNU General Public License as published by
0048 % the Free Software Foundation; either version 3 of the License, or
0049 % (at your option) any later version.

Generated on Fri 16-Mar-2018 13:00:20 by m2html © 2005