withtol

Time tolerance for timetable row subscripting

Syntax

``S = withtol(rowTimes,tol)``
``S = withtol(EF,tol)``

Description

example

````S = withtol(rowTimes,tol)` creates a subscript to select rows of a timetable. `S` selects all rows whose row times match a time in `rowTimes` within the tolerance specified by `tol`. The `rowTimes` argument is a datetime or duration array, or a cell array of character vectors that specify dates and times. `tol` must be a duration value.If `rowTimes` contains datetime values, then you can only use `S` to subscript into a timetable whose row times are datetime values. Similarly, if `rowTimes` contains duration values, then you can only use `S` to subscript into a timetable whose row times are duration values.```
````S = withtol(EF,tol)` creates a row subscript using an event filter. To use event filters, the timetable you subscript into must have an attached event table. For more information on specifying a time tolerance using event filters, see `eventfilter`. (since R2023a)```

Examples

collapse all

Create a timetable that contains temperature and pressure data with row times in hours. There is a slight random variance in the row times. Select rows with row times that match corresponding times in a time vector within a tolerance of five seconds.

```Time = datetime(2015,12,18) + hours(1:10)' + seconds(randn(10,1)); Temp = [37.3 39.1 42.3 42.6 43 43.9 44.1 43.3 42.5 42]'; Pressure = [29.4 29.6 30.0 30.0 30.1 29.9 29.9 29.8 29.6 29.7]'; TT = timetable(Time,Temp,Pressure)```
```TT=10×2 timetable Time Temp Pressure ____________________ ____ ________ 18-Dec-2015 01:00:00 37.3 29.4 18-Dec-2015 02:00:01 39.1 29.6 18-Dec-2015 02:59:57 42.3 30 18-Dec-2015 04:00:00 42.6 30 18-Dec-2015 05:00:00 43 30.1 18-Dec-2015 05:59:58 43.9 29.9 18-Dec-2015 06:59:59 44.1 29.9 18-Dec-2015 08:00:00 43.3 29.8 18-Dec-2015 09:00:03 42.5 29.6 18-Dec-2015 10:00:02 42 29.7 ```

Create a time vector spanning the hours from 3:00 to 8:00.

`newTimes = datetime(2015,12,18) + hours(3:8)`
```newTimes = 1x6 datetime 18-Dec-2015 03:00:00 18-Dec-2015 04:00:00 18-Dec-2015 05:00:00 18-Dec-2015 06:00:00 18-Dec-2015 07:00:00 18-Dec-2015 08:00:00 ```

Select rows of `TT` with row times that match times in `newTimes` within five seconds.

```S = withtol(newTimes,seconds(5)); TT2 = TT(S,:)```
```TT2=6×2 timetable Time Temp Pressure ____________________ ____ ________ 18-Dec-2015 02:59:57 42.3 30 18-Dec-2015 04:00:00 42.6 30 18-Dec-2015 05:00:00 43 30.1 18-Dec-2015 05:59:58 43.9 29.9 18-Dec-2015 06:59:59 44.1 29.9 18-Dec-2015 08:00:00 43.3 29.8 ```

Input Arguments

collapse all

Times to match in a timetable, specified as a datetime array, duration array, cell array of character vectors, or string array. `rowTimes` contains times that do not exactly match times in the row times of a timetable, but that might be within a specified tolerance.

If `rowTimes` is a cell array of character vectors or string array, then the elements of the array specify dates and times that the `datetime` or `duration` functions can convert.

Tolerance for matching times to the row times of a timetable, specified as a duration, character vector, or string scalar.

If `tol` is a character vector or string scalar, then `tol` specifies a time that the `duration` function can convert.

Since R2023a

Event filter.

Version History

Introduced in R2016b

expand all