MATLAB 帮助中心
确定近似相等性
自 R2024b 起
TF = isapprox(A,B)
TF = isapprox(A,B,tol)
TF = isapprox(A,B,Name=Value)
TF = isapprox(A,B) 确定两个输入数组中的哪些对应元素近似相等,并返回一个逻辑数组。如果对应元素位于近似相等区域内,则 TF 在对应位置包含 1 (true),否则包含 0 (false)。默认相对容差和绝对容差均为 1e-15;或者,如果 A 或 B 的类型是 single,则为 5e-7。
TF
A
B
1
true
0
false
1e-15
single
5e-7
示例
TF = isapprox(A,B,tol) 使用由容差级别 tol 设置的相对容差和绝对容差来确定近似相等性。将 tol 指定为 "verytight"、"tight"、"loose" 或 "veryloose"。
tol
"verytight"
"tight"
"loose"
"veryloose"
TF = isapprox(A,B,Name=Value) 使用一个或多个名称-值参量指定选项。例如,isapprox(A,B,RelativeTolerance=1e-10) 使用指定的相对容差和绝对容差 0 来确定近似相等性。
Name=Value
isapprox(A,B,RelativeTolerance=1e-10)
全部折叠
创建两个数值标量值并比较它们是否相等。== 运算符返回逻辑值 0 (false),因为这些值有些许不同,并非完全相等。
==
A = sin(3/4*pi); B = 1/sqrt(2); A == B
ans = logical 0
为了考虑舍入误差,请比较这些值是否近似相等。isapprox 函数返回逻辑值 1 (true),因为 A 和 B 的值之间的差在默认容差范围内。
isapprox
TF = logical 1
A - B
ans = 1.1102e-16
比较双精度 π 值(小数点后有 15 位数值)与数值向量中的元素是否近似相等。
format long A = pi
A = 3.141592653589793
B = [2*asin(1) integral(@(x) 1./sqrt(1-x.^2),-1,1) round(pi,10) 22/7]
B = 1×4 3.141592653589793 3.141592653589721 3.141592653600000 3.142857142857143
TF = 1×4 logical array 1 0 0 0
isapprox 函数仅为第一个元素返回逻辑值 1 (true)。B 中所有其他元素与 A 的值之间的差大于默认容差。要接受输入数据中的更多噪声,请将相对容差和绝对容差级别指定为 "tight"。
TF2 = isapprox(A,B,"tight")
TF2 = 1×4 logical array 1 1 0 0
isapprox 函数仅为第一个和第二个元素返回逻辑值 1 (true)。要接受输入数据中的更多噪声,请将相对容差和绝对容差级别指定为 "loose"。
TF3 = isapprox(A,B,"loose")
TF3 = 1×4 logical array 1 1 1 0
isapprox 函数为前三个元素返回逻辑值 1 (true)。要接受输入数据中的更多噪声,请将相对容差和绝对容差级别指定为 "veryloose"。
TF4 = isapprox(A,B,"veryloose")
TF4 = 1×4 logical array 1 1 1 1
比较来自两个不同仪器的两组测量值是否近似相等。将绝对容差指定为 0.02,这是仪器的已知精度。如果您只指定绝对容差,则相对容差为 0。
0.02
A = [1.00 2.00 3.10 NaN]; B = [0.99 2.01 3.15 NaN]; TF = isapprox(A,B,AbsoluteTolerance=0.02)
TF = 1×4 logical array 1 1 0 0
输入数据,指定为数组。A 和 B 的大小必须相同或兼容。如果输入数组是复数,则它们的类型必须为 single 或 double。
double
指定 isapprox(A,B) 与指定 isapprox(B,A) 相同。
isapprox(A,B)
isapprox(B,A)
数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 复数支持: 是
int8
int16
int32
int64
uint8
uint16
uint32
uint64
相对容差和绝对容差级别,指定为下表中的值之一。有关详细信息,请参阅容差的近似相等区域。
如果您指定 tol,则无法指定 RelativeTolerance 或 AbsoluteTolerance 名称-值参量。
RelativeTolerance
AbsoluteTolerance
容差级别
当 A 和 B 均为除 single 以外的任何类型时的容差
当 A 或 B 是 single 类型时的容差
1e-12
1e-6
1e-8
1e-4
1e-3
1e-2
数据类型: string | char
string
char
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
Name1=Value1,...,NameN=ValueN
Name
Value
示例: TF = isapprox(A,B,RelativeTolerance=1e-10)
TF = isapprox(A,B,RelativeTolerance=1e-10)
[0, 1)
相对容差,指定为 [0, 1) 范围内的标量。
相对容差将近似相等元素之间允许的最大差定义为幅值较大的元素的一定比例。
如果您未指定 RelativeTolerance 或 AbsoluteTolerance 名称-值参量,则相对容差为 1e-15;或者,如果 A 或 B 的类型是 single,则为 5e-7。
如果您指定 RelativeTolerance 名称-值参量,但未指定 AbsoluteTolerance 名称-值参量,则绝对容差为 0。
示例: isapprox(A,B,RelativeTolerance=1e-10) 使用相对容差 1e-10 和绝对容差 0。
1e-10
示例: isapprox(A,B,RelativeTolerance=1e-10,AbsoluteTolerance=1e-8) 使用相对容差 1e-10 和绝对容差 1e-8。
isapprox(A,B,RelativeTolerance=1e-10,AbsoluteTolerance=1e-8)
数据类型: double | single
绝对容差,指定为非负标量。
绝对容差将近似相等元素之间允许的最大差定义为固定数值。
如果您未指定 RelativeTolerance 或 AbsoluteTolerance 名称-值参量,则绝对容差为 1e-15;或者,如果 A 或 B 的类型是 single,则为 5e-7。
如果您指定 AbsoluteTolerance 名称-值参量,但未指定 RelativeTolerance 名称-值参量,则相对容差为 0。
有关浮点精度和算术的信息,请参阅浮点数。
示例: isapprox(A,B,AbsoluteTolerance=1e-8) 使用绝对容差 1e-8 和相对容差 0。
isapprox(A,B,AbsoluteTolerance=1e-8)
容差
算法
近似相等区域
相对容差
relTol
绝对容差
absTol
相对容差和绝对容差
在 R2024b 中推出
eq | isequal | ismembertol | verifyEqual | eps | uniquetol
eq
isequal
ismembertol
verifyEqual
eps
uniquetol
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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处