文件帮助中心文件
公差范围内的独特价值
C = Uniquetol(A,Tol)
c = Uniquetol(a)
[c,ia,ic] = unquetol(___)
[___] = Uniquetol(___,名称,价值)
例子
C= Uniquetol(一种那托)返回唯一的元素一种使用公差托。两个值,你和V.,如果是在容忍范围内
C= Uniquetol(一种那托)
C
一种
托
你
V.
ABS(U-V)<= tol * max(abs(a(:)))
那是,uniquetol.鳞片托输入基于数据幅度。
uniquetol.
uniquetol.类似于独特。然而独特执行确切的比较,uniquetol.使用容差执行比较。
独特
C= Uniquetol(一种)使用默认的容差1E-6用于单精度输入和1E-12用于双精度输入。
C= Uniquetol(一种)
1E-6
1E-12
[C那IA.那我知道了] = Uniquetol(___)返回索引向量IA.和我知道了,这样c = a(ia)和A〜C(IC)(要么A(:)〜C(IC)如果一种是一个矩阵),在哪里〜意味着值在彼此的容差范围内。您可以在以前的语法中使用任何输入参数。
[C那IA.那我知道了] = Uniquetol(___)
IA.
我知道了
c = a(ia)
A〜C(IC)
A(:)〜C(IC)
〜
[___] = Uniquetol(___那名称,价值)使用以前语法中的任何输入或输出参数组合使用一个或多个名称 - 值对参数指定的其他选项。例如,Uniquetol(A,'Byrows',True)确定唯一行一种。
[___] = Uniquetol(___那名称,价值)
名称,价值
Uniquetol(A,'Byrows',True)
全部收缩
创建矢量X。获得第二个向量y通过转换和未转变X。这种转变介绍了圆截止差异y。
X
y
x =(1:6)'* pi;y = 10. ^ log10(x);
验证X和y通过取得差异并不相同。
X-Y.
ans =.6×110.-14×0.0444 0 0 0 0 0 -0.3553
采用独特在连接载体中找到唯一的元素[x; y]。这独特函数执行精确的比较并确定某些值X不完全等于值y。这些是具有非零差异的相同元素X-Y.。因此,C包含值出现要重复。
[x; y]
c =唯一([x; y])
C =8×13.1416 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496 18.8496
采用uniquetol.使用小容差执行比较。uniquetol.将容差的元素视为平等。
c = Uniquetol([x; y])
C =6×13.1416 6.2832 9.4248 12.5664 15.7080 18.8496
默认情况下,uniquetol.寻找独特的元素这在宽容范围内,但它也可以找到独特的行在容差范围内的矩阵。
创建一个数字矩阵,一种。获得第二个矩阵,B.,通过转换和不转化一种。这种转变介绍了循环差异B.。
B.
a = [0.05 0.11 0.18;0.18 0.21 0.29;0.34 0.36 0.41;0.46 0.52 0.76];b = log10(10. ^ a);
采用独特找到唯一的行一种和B.。这独特函数执行精确的比较并确定连接矩阵中的所有行[a; b]是独一无二的,尽管一些行只有少量不同。
[a; b]
独特([a; b],'行')
ans =.8×3.0.0500 0.1100 0.1800 0.0500 0.1100 0.1800 0.1800 0.2100 0.2900 0.1800 0.2100 0.2900 0.3400 0.3600 0.4100 0.3400 0.3600 0.4100 0.4600 0.5200 0.7600 0.4600 0.5200 0.7600
采用uniquetol.找到唯一的行。uniquetol.对待公差范围内的行。
Unquetol([a; b],'byrows',真的)
ans =.4×30.0500 0.1100 0.1800 0.1800 0.2100 0.2900 0.2900 0.3400 0.3600 0.4100 0.4600 0.5200 0.7600
创建矢量,X。获得第二个向量,y,通过转换和不转化X。这种转变介绍了对某些元素的圆截止差异y。
x =(1:5)'* pi;y = 10. ^ log10(x);
结合X和y进入单个载体,一种。采用uniquetol.重建一种,处理公差范围内的值。
a = [x; y]
A =10×13.1416 6.2832 9.4248 12.5664 15.7080 3.1416 6.2832 9.4248 12.5664 15.7080
[C,IA,IC] = Unquetol(a);Newa = C(IC)
纽约=10×13.1416 6.2832 9.4248 12.5664 15.7080 3.1416 6.2832 9.4248 12.5664 15.7080
您可以使用纽瓦姆和==.或使用精确平等的功能是平等的要么独特在后续代码中。
纽瓦姆
==.
是平等的
d1 =独特(a)
D1 =6×13.1416 3.1416 6.2832 9.4248 12.5664 15.7080
d2 =独特(牛排)
D2 =5×13.1416 6.2832 9.4248 12.5664 15.7080
创建2-D样本点的云,约束为半径圆圈0.5以点为中心 ( 1 2 那 1 2 ) 。
0.5
x = rand(10000,2);insidecircle = sqrt((x(:,1) - 。5)。^ 2+(x(:,2) - 。5)。^ 2)<0.5;y = x(insidecircle,:);
找到一组减少的点,使得原始数据集的每个点在一个点的容差范围内。
tol = 0.05;c = Uniquetol(y,tol,'byrows',真的);
将减少的点组绘制为原始数据集顶部的红色点。红色点是原始数据集的所有成员。所有的红色点至少是一段距离托分开。
绘图(Y(:,1),Y(:,2),'。') 抓住在轴平等的绘图(C(:,1),c(:,2),'.r'那'Markersize',10)
创建随机数的向量,并使用公差确定唯一元素。指定OutputAllindices.作为真的返回在唯一值的容差范围内的元素的所有索引。
OutputAllindices.
真的
a = rand(100,1);[c,ia] = Uniquetol(a,1e-2,'OutputalAllindices',真的);
找到在容差范围内的元素的平均值C(2)。
C(2)
ANS = 0.0318.
alla = a(ia {2})
alla =3×10.0357 0.0318 0.0344
Avea =卑鄙(ALLA)
Avea = 0.0340.
默认情况下,uniquetol.使用表单的公差测试ABS(U-V)<= TOL * DS, 在哪里DS.自动地秤基于输入数据的大小。您可以指定不同的DS.与之使用的价值DEACASCALE.选项。但是,绝对的宽容(哪里DS.是标量)不根据输入数据的幅度扩展。
ABS(U-V)<= TOL * DS
DS.
DEACASCALE.
首先,比较两个距离的小值eps.分开。指定托和DS.使公差方程式内容:ABS(U-V)<= 10 ^ -6。
eps.
ABS(U-V)<= 10 ^ -6
x = 0.1;Unquetol([x,exp(log(x))],10 ^ -6,'dataScale'1)
ans = 0.1000.
接下来,增加值的幅度。计算中的圆关闭错误exp(log(x))与值的大小成比例,具体到EPS(x)。即使两个大值是距离eps.彼此,EPS(x)现在更大了。所以,10 ^ -6不再是合适的耐受性。
exp(log(x))
EPS(x)
10 ^ -6
x = 10 ^ 10;Unquetol([x,exp(log(x))],10 ^ -6,'dataScale'1)
ans =.1×210.10.×1.0000 1.0000
使用默认值(缩放)值来纠正此问题DS.。
格式长Y = [0.1 10 ^ 10];Uniquetol([y,exp(log(y))])
ans =.1×210.10.×0.000000000010000 1.000000000000000
创建一组随机的2-D点,然后使用uniquetol.将点分组到具有相似(在公差范围内)X坐标的垂直频带中。使用这些选项uniquetol.:
指定Byrows.作为真的由于点坐标位于行的行中一种。
Byrows.
指定OutputAllindices.作为真的返回具有在彼此容差范围内具有X坐标的所有点的索引。
指定DEACASCALE.作为[1款]使用绝对容差X- 忽略的同时y-协调。
[1款]
a = rand(1000,2);DS = [1款];[c,ia] = Unquetol(a,0.1,'byrows', 真的,......'OutputalAllindices', 真的,'dataScale',DS);
绘制每个频段的点和平均值。
抓住在为了K = 1:长度(IA)图(A(IA {K},1),A(IA {K},2),'。')valenai =平均值(a(ia {k},:));情节(平均(1),平均(2),'xr')结尾
查询数组,指定为标量,矢量,矩阵或多维数组。一种必须饱满。
数据类型:单身的|双倍的
单身的
双倍的
比较耐受,指定为正,真正的标量。uniquetol.鳞片托输入使用输入数组中的最大绝对值输入一种。然后uniquetol.使用由此产生的缩放比较公差来确定哪些元素一种是独一无二的。如果两个元素一种然后是彼此的容忍度uniquetol.认为他们是平等的。
两个值,你和V.,如果是在容忍范围内ABS(U-V)<= tol * max(abs(a))。
ABS(U-V)<= tol * max(abs(a))
要指定绝对容差,请指定两者托和'dataScale'名称值对。
'dataScale'
例子:tol = 0.05
tol = 0.05
例子:tol = 1e-8
tol = 1e-8
例子:tol = eps.
tol = eps.
指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen。
名称
价值
name1,value1,...,namen,valuen
c = Uniquetol(a,'byrows',true)
'OutputalAllindices'
错误的
0.
1
输出索引类型,指定为逗号分隔的对组成'OutputalAllindices'和任何一种错误的(默认),真的那0., 要么1。uniquetol.解释数字0.作为错误的和数字1作为真的。
什么时候OutputAllindices.是真的, 这uniquetol.函数返回第二个输出,IA.作为单元阵列。单元格数组包含指数全部元素一种这在宽度范围内C。也就是说,每个细胞IA.对应于一个值C,每个单元格中的值对应于位置一种。
例子:[C,IA] = Unquetol(A,Tol,'OutputalLindices',True)
[C,IA] = Unquetol(A,Tol,'OutputalLindices',True)
'byrows'
行比较切换,指定为逗号分隔对组成'byrows'和任何一种错误的(默认),真的那0., 要么1。uniquetol.解释数字0.作为错误的和数字1作为真的。使用此选项查找行一种在宽容之内是独一无二的。
什么时候Byrows.是真的:
一种必须是2-D阵列。
uniquetol.比较行的行一种通过单独考虑每列。对于两行在彼此的容差范围内,每个列必须具有宽容。
每一行一种是在宽容的情况下C。但是,没有两行C在彼此的宽容范围内。
两排,你和V.,如果是在容忍范围内所有(ABS(U-V)<= tol * max(abs(a),[],1))。
所有(ABS(U-V)<= tol * max(abs(a),[],1))
例子:C = Uniquetol(A,Tol,'Byrows',True)
C = Uniquetol(A,Tol,'Byrows',True)
数据的规模,指定为逗号分隔对组成'dataScale'和标量或矢量。指定DEACASCALE.作为数字标量,DS.,改变容差测试ABS(U-V)<= TOL * DS。
当与之一起使用时Byrows.选项,这是DEACASCALE.价值也可以是矢量。在这种情况下,矢量的每个元素指定DS.对于相应的列一种。如果是值DEACASCALE.矢量是INF., 然后uniquetol.忽略相应的列一种。
INF.
例子:C = Uniquetol(a,'dataScale',1)
C = Uniquetol(a,'dataScale',1)
例子:[c,ia,ic] = Unquetol(a,'byrows',true,'dataScale',[EPS(1)EPS(10)EPS(100)])
[c,ia,ic] = Unquetol(a,'byrows',true,'dataScale',[EPS(1)EPS(10)EPS(100)])
独特的元素一种(在公差范围内),作为向量或矩阵返回。如果一种是一排矢量,然后C也是一排矢量。否则,C是一列栏矢量。元素C按升序排序。每个元素一种在容忍元素范围内C,但没有两个要素C在彼此的宽容范围内。
如果是Byrows.选项是真的, 然后C是包含唯一行的矩阵一种。在这种情况下,行中的行C通过第一列按升序排序。每一行一种是在宽容的情况下C,但没有两行C在彼此的宽容范围内。
指数到一种,作为索引的列向量向索引到第一次发生重复元素,或作为单元阵列。IA.一般满足c = a(ia),以下例外:
如果是Byrows.选项是真的, 然后c = a(ia,:)。
c = a(ia,:)
如果是OutputAllindices.选项是真的, 然后IA.是一个小区阵列和c(i)〜a(ia {i})在哪里〜意味着值在彼此的容差范围内。
c(i)〜a(ia {i})
指数到C,作为索引的列向量返回。我知道了满足以下属性,其中〜意味着值在彼此的容差范围内。
如果一种是一个矢量,然后A〜C(IC)。
如果一种是一个矩阵,然后A(:)〜C(IC)。
如果是Byrows.选项是真的, 然后a〜c(ic,:)。
a〜c(ic,:)
可以有多个有效的C满足条件的输出,没有两个要素C在彼此的宽容范围内。这uniquetol.函数只返回一个有效的输出。
uniquetol.排列lexically排序,然后从最低值开始,以在容差内找到唯一的值。结果,改变输入的排序可以改变输出。例如,Unquetol(-a)可能不会给出相同的结果- 蛋白质(a)。
Unquetol(-a)
- 蛋白质(a)
使用说明和限制:
这'byrows'和'OutputalAllindices'不支持选项。万博1manbetx
不支持64位整数。万博1manbetx
有关更多信息,请参阅在GPU上运行matlab函数(并行计算工具箱)。
eps.|ismember.|ismembertol.|独特
ismember.
ismembertol.
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室