isbetween
确定哪些元素在指定范围内
语法
说明
TF = isbetween( 指定区间的类型。例如,A,lower,upper,intervalType)isbetween(A,lower,upper,"open") 查找 A 中位于开区间 (lower,upper) 内的元素。
TF = isbetween(___, 支持上述语法中的任何输入参量组合,且可使用一个或多个名称-值参量指定选项。例如,对于输入表 Name=Value)A,TF = isbetween(A,lower,upper,OutputFormat="tabular") 将输出 TF 以表形式返回。
示例
创建一个行向量,并查找向量中位于指定范围内的元素。
A = [1 3 5 7 9]; TF = isbetween(A,2,7)
TF = 1×5 logical array
0 1 1 1 0
显示位于范围内的元素的值。
val = A(TF)
val = 1×3
3 5 7
创建一个数值矩阵。
A = repmat(1:7,4,1)
A = 4×7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
确定每行中的哪些元素位于指定范围内。下界(指定为列向量)为输入数据的对应行设置范围的下界。上界(指定为标量)为输入数据的所有行设置上界。
lower = [1; 2; 3; 4]; upper = 6; TF = isbetween(A,lower,upper)
TF = 4×7 logical array
1 1 1 1 1 1 0
0 1 1 1 1 1 0
0 0 1 1 1 1 0
0 0 0 1 1 1 0
创建一个行向量,并确定向量中的哪些元素位于指定范围内。将区间类型指定为 "open" 以排除下界和上界。
A = 1:7;
TF = isbetween(A,3,6,"open")TF = 1×7 logical array
0 0 0 1 1 0 0
通过将区间类型指定为 "closedleft" 来包括下界。对于等于下界的任何元素,返回 1 (true)。
TF2 = isbetween(A,3,6,"closedleft")TF2 = 1×7 logical array
0 0 1 1 1 0 0
通过将区间类型指定为 "closedright" 来包括上界。对于等于上界的任何元素,返回 1 (true)。
TF3 = isbetween(A,3,6,"closedright")TF3 = 1×7 logical array
0 0 0 1 1 1 0
通过显示指定范围内的数组元素来比较区间类型。
val = A(TF)
val = 1×2
4 5
val2 = A(TF2)
val2 = 1×3
3 4 5
val3 = A(TF3)
val3 = 1×3
4 5 6
创建一个由 datetime 值组成的数组。
A = datetime(2024,5,16:2:26)
A = 1×6 datetime
16-May-2024 18-May-2024 20-May-2024 22-May-2024 24-May-2024 26-May-2024
为日期范围指定下界和上界。
lower = datetime(2024,01,01);
upper = "2024-05-22";确定哪些元素位于闭区间内。
TF = isbetween(A,lower,upper)
TF = 1×6 logical array
1 1 1 1 0 0
显示位于范围内的元素的值。
val = A(TF)
val = 1×4 datetime
16-May-2024 18-May-2024 20-May-2024 22-May-2024
创建一个包含数据的表。
T = table([1;3;5;7],[2;4;6;8])
T=4×2 table
Var1 Var2
____ ____
1 2
3 4
5 6
7 8
返回一个表,指示 T 中的元素位于指定范围内。
TF = isbetween(T,3,7,OutputFormat="tabular")TF=4×2 table
Var1 Var2
_____ _____
false false
true true
true true
true false
将输入表中位于指定范围之外的任何元素替换为缺失值。
T.Var1(~TF.Var1) = missing; T.Var2(~TF.Var2) = missing
T=4×2 table
Var1 Var2
____ ____
NaN NaN
3 4
5 6
7 NaN
创建一个包含不同数据类型的三个变量的表。
num = rand(6,1); num2 = single(rand(6,1)); dt = datetime(2016:2021,1,1)'; T = table(num,num2,dt)
T=6×3 table
num num2 dt
_______ _______ ___________
0.81472 0.2785 01-Jan-2016
0.90579 0.54688 01-Jan-2017
0.12699 0.95751 01-Jan-2018
0.91338 0.96489 01-Jan-2019
0.63236 0.15761 01-Jan-2020
0.09754 0.97059 01-Jan-2021
为单行表中不同数据类型的变量指定边界。
lower = table(0.2,single(0.1),datetime(2018,1,1),VariableNames=["num" "num2" "dt"])
lower=1×3 table
num num2 dt
___ ____ ___________
0.2 0.1 01-Jan-2018
upper = table(0.9,Inf,datetime(2020,1,1),VariableNames=["num" "num2" "dt"])
upper=1×3 table
num num2 dt
___ ____ ___________
0.9 Inf 01-Jan-2020
确定 num 和 dt 变量中的哪些元素位于指定范围内。
TF = isbetween(T,lower,upper,DataVariables=["num" "dt"])
TF = 6×3 logical array
1 0 0
0 0 0
0 0 1
0 0 1
1 0 1
0 0 0
或者,如果您将边界指定为仅包含 num 和 dt 的边界的单行表,则不需要指定 DataVariables 名称-值参量。
输入参数
输入数据,指定为数组、表或时间表。
A 必须为具有类方法 lt (<) 或 le (<=) 的对象。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration | table | timetable
范围的下界,指定为数组或单行表。下界和上界必须大小相同或大小兼容。lower 必须为具有类方法 lt (<) 或 le (<=) 的对象。
要对
A的所有元素使用相同的下界,请将lower指定为标量。要对
A中的每列或每行使用不同下界,请分别将lower指定为行向量或列向量。要为每个数据元素使用不同下界,请将
lower指定为与A大小相同的数组。
对于表输入数据,当要操作的表变量具有不同数据类型时,请将下界指定为单行表。单行表的变量名称必须与要操作的表变量的名称相同。
范围的上界,指定为数组或单行表。下界和上界必须大小相同或大小兼容。upper 必须为具有类方法 lt (<) 或 le (<=) 的对象。
要对
A的所有元素使用相同的上界,请将upper指定为标量。要对
A中的每列或每行使用不同的上界,请分别将upper指定为行向量或列向量。要为每个数据元素使用不同的上界,请将
upper指定为与A大小相同的数组。
对于表输入数据,当要操作的表变量具有不同数据类型时,请将上界指定为单行表。单行表的变量名称必须与要操作的表变量的名称相同。
定义允许值范围的区间的类型,指定为下表中的值之一。
区间的类型 | 图 | 描述 |
|---|---|---|
|
| 包括 |
|
| 排除 |
|
| 排除
|
|
| 包括
|
名称-值参数
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: TF = isbetween(A,lower,upper,OutputFormat="tabular")
要对其进行操作的表或时间表变量,指定为下表中的值之一。对于 DataVariables 未指定的变量,TF 包含逻辑值 0 (false),除非 OutputFormat 的值为 "tabular"。
如果不指定 DataVariables,isbetween 将对 A 中的所有变量进行操作。
| 索引方案 | 要指定的值 | 示例 |
|---|---|---|
变量名称 |
|
|
变量索引 |
|
|
函数句柄 |
|
|
变量类型: |
|
|
示例: TF = isbetween(T,lower,upper,DataVariables=["Var1" "Var2" "Var4"])
输出数据类型,指定为下列值之一:
"logical"- 将输出TF以逻辑数组形式返回。"tabular"- 对于表输入数据,以表形式返回输出TF。对于时间表输入数据,以时间表形式返回输出TF。
示例: TF = isbetween(T,lower,upper,OutputFormat="tabular")
扩展功能
isbetween 函数支持 tall 数组,但存在以下使用说明和限制:
第一个参量必须为 tall 日期时间、tall 持续时间或 tall 字符串数组。
名称-值参量
DataVariables和OutputFormat不受支持。
有关详细信息,请参阅tall 数组。
isbetween 函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
isbetween 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
isbetween 函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2014b 中推出确定哪些元素位于您为任何数据类型的输入数组、表或时间表指定的范围内。以前,isbetween 仅支持日期和时间输入数据。
对于表或时间表中的数据,您可以使用 OutputFormat 名称-值参量返回包含逻辑值(而不是逻辑数组)的表或时间表。您还可以使用 DataVariables 名称-值参量指定要运算的表变量。
当参量为 isbetween 或 datetime 数组时,duration 支持隐式扩展。以前,仅数值和字符串数据类型支持隐式扩展。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
![Closed interval [lower, upper]](interval-notation-02.png)

![Half-open interval (lower, upper]](interval-notation-04.png)
