Main Content

isbetween

确定位于日期时间区间内的元素

说明

示例

tf = isbetween(t,tlower,tupper) 返回一个包含逻辑值 1 (true) 的数组,其中逻辑值 1 表示 t 中对应元素是位于 tlowertupper 的对应元素指定的闭区间内的 datetimeduration 值。输出 tf 指示 t 的哪些元素满足以下条件:

tlower <= t & t <= tupper

ttlowertupper 的大小必须相同或兼容。如果输入数组的大小兼容,则数组会隐式扩展以相互匹配。例如,如果 ttlowertupper 之一是标量,则该标量与其他数组的每个元素进行比较。此外,具有不同方向的向量(行向量和列向量)会隐式扩展以形成矩阵。

示例

tf = isbetween(t,tlower,tupper,intervalType) 确定 t 的元素是否在 intervalType 指定的区间类型内。例如,如果 intervalType'open',则 isbetween 确定 t 的哪些元素满足条件 tlower < t & t < tupper

示例

全部折叠

指定日期的下界和上界。

tlower = datetime(2021,05,16)
tlower = datetime
   16-May-2021

tupper = "2021-05-23"
tupper = 
"2021-05-23"

tlowertupper 可以是 datetime 数组、duration 数组、字符串或字符向量。此处,tlowerdatetime 数组,tupper 是字符串标量。

创建一个由 datetime 值组成的数组。您可以从一个 datetimetlower 开始,并使用 caldays 函数为其加上一个日历天数的数组。结果将得到一个由 datetime 值组成的数组,各值之间间隔两天。

t = tlower + caldays(2:2:10)
t = 1x5 datetime
   18-May-2021   20-May-2021   22-May-2021   24-May-2021   26-May-2021

确定哪些 datetime 值位于由 tlowertupper 界定的闭区间内。

tf = isbetween(t,tlower,tupper)
tf = 1x5 logical array

   1   1   1   0   0

要显示该区间内的日期,请使用 tf 作为逻辑索引对 t 进行索引。

t(tf)
ans = 1x3 datetime
   18-May-2021   20-May-2021   22-May-2021

使用 seconds 指定区间测试 duration 值的上界和下界。seconds 函数将指定的秒数转换为一个 duration 数组,该数组格式化为以秒为单位显示经过的时间。

tlower = seconds(3)
tlower = duration
   3 sec

tupper = seconds(9)
tupper = duration
   9 sec

创建一个由 duration 值组成的数组。

t = seconds(1:10)
t = 1x10 duration
    1 sec    2 sec    3 sec    4 sec    5 sec    6 sec    7 sec    8 sec    9 sec   10 sec

确定 t 的哪些元素在该区间内。然后展示它们。

tf = isbetween(t,tlower,tupper);
t(tf)
ans = 1x7 duration
   3 sec   4 sec   5 sec   6 sec   7 sec   8 sec   9 sec

指定一个区间测试日期的上界和下界。

tlower = datetime(2021,5,16)
tlower = datetime
   16-May-2021

tupper = datetime(2021,5,23)
tupper = datetime
   23-May-2021

创建一个由 datetime 值组成的数组,其中第一个元素等于 tlower

t = tlower + caldays(0:2:8)
t = 1x5 datetime
   16-May-2021   18-May-2021   20-May-2021   22-May-2021   24-May-2021

确定哪些日期出现在开区间 tlower < t & t < tupper 内。

tf = isbetween(t,tlower,tupper,'open')
tf = 1x5 logical array

   0   1   1   1   0

要显示该开区间内的日期,请使用 tf 作为逻辑索引对 t 进行索引。

t(tf)
ans = 1x3 datetime
   18-May-2021   20-May-2021   22-May-2021

确定哪些日期出现在半开区间 tlower <= t & t < tupper 内。显示日期。

tf = isbetween(t,tlower,tupper,'openright');
t(tf)
ans = 1x4 datetime
   16-May-2021   18-May-2021   20-May-2021   22-May-2021

输入参数

全部折叠

日期时间输入,指定为 datetime 数组、duration 数组、字符向量、字符向量元胞数组或字符串数组。必须对字符向量和字符串进行格式化以表示日期时间。

日期时间间隔的下界,指定为 datetime 数组、duration 数组、字符向量、字符向量元胞数组或字符串数组。必须对字符向量和字符串进行格式化以表示日期时间。

日期时间区间的上界,指定为 datetime 数组、duration 数组、字符向量、字符向量元胞数组或字符串数组。必须对字符向量和字符串进行格式化以表示日期时间。

时间范围区间的类型,指定为 'open''closed''openleft''openright''closedright''closedleft'。下表说明时间范围区间的类型。

区间类型

描述

'open'

选择满足开区间 tlower < t t < tupper 的值。

'closed'(默认值)

选择满足闭区间 tlower <= tt <= tupper 的值。

'openleft'

选择满足半开区间 tlower < tt <= tupper 的值。

'openright'

选择满足半开区间 tlower <= tt < tupper 的值。

'closedright'

等效于 'openleft'

'closedleft'

等效于 'openright'

扩展功能

版本历史记录

在 R2014b 中推出

全部展开