主要内容

uniquetol

惟一的值在公差

描述

例子

C= uniquetol (一个,托尔)返回独特的元素一个用宽容托尔。两个值,uv,在宽容

abs (uv) < = tol *马克斯(abs ((:)))

也就是说,uniquetol尺度的托尔输入基于数据的大小。

uniquetol类似于独特的。而独特的执行精确的比较,uniquetol使用一个公差进行比较。

例子

C= uniquetol (一个)使用一个默认的公差1 e-6为单精确输入和1 e-12双精度的输入。

C= uniquetol (一个,托尔,发生),在那里发生“最高”指定,当几个值是宽容彼此,应该选择最高价值是独一无二的。的默认值发生“最低”,选择最小值是唯一的。

例子

(C,IA,集成电路)= uniquetol (___)返回索引向量IA集成电路,这样C = (IA)A ~ C (IC)(或(:)~ C(集成电路)如果一个是一个矩阵),在哪里~意味着在公差值。您可以使用任何输入参数的以前的语法。

例子

(___)= uniquetol (___,名称,值)使用附加选项指定一个或多个名称-值对参数使用任何输入或输出参数组合在以前的语法。例如,uniquetol (“ByRows”,真的)决定了独特的行一个

例子

全部折叠

创建一个向量x。获得第二个向量y通过改变和untransformingx。这个变换引入了舍入的差异y

x =(1:6) *π;y = 10 ^ log10 (x);

验证xy不相同的区别。

x - y
ans =6×110-14年-0.3553×0.0444 0 0 0 0

使用独特的寻找独特的元素连接向量(x, y)。的独特的函数执行的比较和确定一些值x并不完全等于值y。这些相同的元素有一个非零的差异x - y。因此,c包含值出现是重复的。

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通过改造和untransforming一个。这个变换引入了舍入的差异B

(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 ^);

使用独特的找到独特的行一个B。的独特的函数执行的比较和确定所有的连接矩阵中的行[A, B]是独一无二的,尽管一些相差只有少量的行。

独特的([A, B],“行”)
ans =8×30.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在宽容作为平等对待行。

uniquetol ([A, B],“ByRows”,真正的)
ans =4×30.0500 0.1100 0.1800 0.1800 0.2100 0.2900 0.3400 0.3600 0.4100 0.4600 0.5200 0.7600

创建一个向量,x。获得第二个向量,y通过改造和untransformingx。这个变换引入了舍入不同元素y

x =(1:5) *π;y = 10 ^ log10 (x);

结合xy为一个向量,一个。使用uniquetol重建一个公差内,将值相等。

= (x, y)
一个=10×13.1416 6.2832 9.4248 12.5664 15.7080 3.1416 6.2832 9.4248 12.5664 15.7080
[C IA IC] = uniquetol(一个);newA = C(集成电路)
newA =10×13.1416 6.2832 9.4248 12.5664 15.7080 3.1416 6.2832 9.4248 12.5664 15.7080

您可以使用newA= =或函数,使用完全平等isequal独特的在随后的代码。

D1 =独特(A)
D1 =6×13.1416 3.1416 6.2832 9.4248 12.5664 15.7080
D2 =独特(newA)
D2 =5×13.1416 6.2832 9.4248 12.5664 15.7080

使用发生选项来控制哪些元素uniquetol选择是独一无二的。

创建一个向量和找到公差内的哪些元素是独一无二的1 e 1

一个= [1 1.1 1.11 1.12 1.13 2];c = uniquetol (a, 1 e 1)
c =1×21 2

因为前五个元素一个都有相似的价值观的宽容1 e 1选择,只有它们之间的最小值是唯一的。这是因为uniquetol价值最低的开始一个没有发现一个新元素并不是在宽容,直到2的向量。

使用“最高”选项来指定uniquetol和最高的价值应该开始吗一个。现在,1.13元素被选中作为独特的自uniquetol作品从最高的价值。

d = uniquetol (, 1 e 1,“最高”)
d =1×21.1300 - 2.0000

创建一个云的二维采样点限制在一个圆的半径0.5集中在点 ( 1 2 , 1 2 )

x =兰德(10000 2);insideCircle =√(x(: 1)闲置)^ 2 + (x(:, 2)闲置)^ 2)< 0.5;y = x (insideCircle:);

找到一个减少点集,这样每个点的原始数据集是在宽容点。

托尔= 0.05;C = uniquetol (y,托尔,“ByRows”,真正的);

情节的设置点上红点的原始数据集。红点是原始数据集的所有成员。所有的红点都至少有一段距离托尔分开。

情节(y (: 1), y (:, 2),“。”)举行平等的情节(C (: 1), C (:, 2),“r”,“MarkerSize”,10)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。一个或多个行显示的值只使用标记

创建一个向量随机数和确定不同的元素使用公差。指定OutputAllIndices作为真正的返回的所有指标的公差内的元素独特的价值观。

一个=兰德(100 1);[C IA] = uniquetol(1飞行,“OutputAllIndices”,真正的);

发现元素的平均值,在宽容的价值C (2)

C (2)
ans = 0.0318
真主安拉= (IA {2})
真主安拉=3×10.0357 0.0318 0.0344
aveA =意味着(真主安拉)
aveA = 0.0340

默认情况下,uniquetol使用一个表单的耐量试验abs (uv) < = tol * DS,在那里DS自动尺度基于输入数据的大小。您可以指定一个不同的DS使用价值DataScale选择。然而,绝对的公差(DS是一个标量)不根据输入数据的大小规模。

首先,比较两个值,一个距离每股收益分开。指定托尔DS在宽容方程:abs (uv) < = 10 ^ 6

x = 0.1;uniquetol ([x, exp(日志(x))], 10 ^ 6,“DataScale”,1)
ans = 0.1000

接下来,增加的幅度值。舍入误差的计算exp(日志(x))值的大小成正比,特别是每股收益(x)。尽管两大值的距离每股收益从一个另一个每股收益(x)现在大得多。因此,10 ^ 6不再是一个合适的公差。

x = 10 ^ 10;uniquetol ([x, exp(日志(x))], 10 ^ 6,“DataScale”,1)
ans =1×21010×1.0000 - 1.0000

纠正这个问题通过使用默认(比例)的价值DS

格式Y = 10 ^ [0.1];uniquetol ([Y, exp(日志(Y))))
ans =1×21010×0.000000000010000 - 1.000000000000000

创建一组随机二维点,然后使用uniquetol组的点到垂直的乐队也有类似的(在公差内)坐标。使用这些选项uniquetol:

  • 指定ByRows作为真正的自点坐标的行一个

  • 指定OutputAllIndices作为真正的返回所有点的指标有一个坐标在宽容彼此。

  • 指定DataScale作为(1正)使用绝对的宽容x协调而忽略了y协调。

一个=兰德(1000 2);DS =[1正];[C IA] = uniquetol (0.1,“ByRows”,真的,“OutputAllIndices”,真的,“DataScale”DS);

情节点和平均值为每一个乐队。

持有k = 1:长度(IA)图((IA {k}, 1),一个(IA {k}, 2),“。”)meanAi =意味着((IA {k},:));情节(meanAi (1) meanAi (2),“xr”)结束

图包含一个坐标轴对象。坐标轴对象包含20线类型的对象。一个或多个行显示的值只使用标记

输入参数

全部折叠

查询数组,指定为一个标量、向量矩阵,或多维数组。一个必须完整。

数据类型:|

比较宽容,指定为一个积极的,真正的标量。uniquetol尺度的托尔输入使用输入数组中的最大绝对值一个。然后uniquetol使用结果比较宽容,以确定哪些元素一个是独一无二的。如果两个元素一个然后,在彼此宽容吗uniquetol认为他们是平等的。

两个值,uv,在宽容abs (uv) < = tol *马克斯(abs ())

指定一个绝对的宽容,同时指定托尔“DataScale”名称-值对。

例子:托尔= 0.05

例子:托尔= 1 e-8

例子:托尔=每股收益

数据类型:|

发生的惟一值,指定为这个表的选项之一。的价值发生决定哪些元素uniquetol选择是独一无二的。

选项 描述
“最低”

uniquetol价值最低的开始一个,然后反复发现下一个最小值一个这不是在宽容的任何其他值C。的作用是,当几个输入值在公差,最低的一个选择是独一无二的。

“最高”

uniquetol从最高的价值开始一个,然后反复发现下一个最高价值一个这不是在宽容的任何其他值C。这是当几个输入值的影响彼此的公差内,最高的一个选择是独一无二的。

例子:C = uniquetol(托尔,“最高”)

例子:C = uniquetol((1 2 3), 2,“最高”)返回3,因为uniquetol从最高的价值输入和其他值都在公差之内。

数据类型:字符|字符串

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:C = uniquetol (“ByRows”,真的)

产出指数类型,指定为逗号分隔组成的“OutputAllIndices”,要么(默认),真正的,0,或1uniquetol解释数字0作为和数字1作为真正的

OutputAllIndices真正的,uniquetol函数返回第二个输出,IA单元阵列。细胞数组包含的指标所有元素一个在公差值C。也就是说,每一个细胞IA对应于一个值C,每个单元格中的值对应的位置一个

例子:[C IA] = uniquetol (tol, OutputAllIndices,真的)

行比较切换,指定为逗号分隔组成的“ByRows”,要么(默认),真正的,0,或1uniquetol解释数字0作为和数字1作为真正的。使用这个选项找到行一个中是独一无二的,宽容。

ByRows真正的:

  • 一个必须是一个二维数组。

  • uniquetol比较的行一个通过考虑每一列分别。公差内为两行,每一列必须在公差。

  • 在每一行一个在宽容的行吗C。但是,没有两行C在宽容彼此。

两行,uv,在宽容所有(abs (uv) < = tol *马克斯(abs (A)、[], 1))

例子:C = uniquetol (tol, ByRows,真的)

规模的数据,指定为逗号分隔组成的“DataScale”和一个标量或矢量。指定DataScale作为一个数字标量,DS,改变耐量试验abs (uv) < = tol * DS

当一起使用ByRows选项时,DataScale值也可以是一个向量。在这种情况下,每个元素的向量指定DS相应的列一个。如果一个值DataScale向量是,然后uniquetol忽略了相应的列一个

例子:C = uniquetol (' DataScale ', 1)

例子:[C IA IC] = uniquetol (“ByRows”,没错,‘DataScale’, (eps(1)每股收益(10)每股收益(100)))

数据类型:|

保护开关,指定为逗号分隔组成的“PreserveRange”,要么(默认),真正的,0,或1uniquetol解释数字0作为和数字1作为真正的。使用这个选项来指定输出的最小值和最大值C应该是一样的吗一个

如果在最大和最小值一个都在公差托尔彼此的uniquetol只返回一个值。

例子:C = uniquetol (tol, PreserveRange,真的)

输出参数

全部折叠

独特的元素一个(在公差内),作为一个向量或矩阵返回。如果一个是一个行向量,然后C也是一个行向量。否则,C是一个列向量。中的元素C是按升序排序。中的每个元素一个在宽容的元素在吗C,但没有两个元素C在宽容彼此。

如果ByRows选择是真正的,然后C是一个矩阵包含独特的行一个。在这种情况下,行C由第一列按升序排序。在每一行一个在宽容的行吗C,但没有两行C在宽容彼此。

索引一个,作为一个列向量返回指数第一次出现重复的元素,或作为一个单元阵列。IA通常满足C = (IA),以下异常:

  • 如果ByRows选择是真正的,然后:C = (IA)

  • 如果OutputAllIndices选择是真正的,然后IA是一个单元阵列和C(我)~ (IA{我})在哪里~意味着在公差值。

索引C,作为一个列向量返回的索引。集成电路满足以下属性,~意味着在公差值。

  • 如果一个是一个矢量,然后呢A ~ C (IC)

  • 如果一个是一个矩阵,然后呢(:)~ C(集成电路)

  • 如果ByRows选择是真正的,然后:A ~ C (IC)

算法

uniquetol各种输入字母顺序进行的,然后开始在最低或最高价值找到独特的值在公差内。因此,改变输入可以改变输出的排序。例如,uniquetol(一)可能不会给相同的结果-uniquetol (A)

可以有多个有效C输出满足条件,任何两个元素C在彼此宽容吗。的uniquetol函数可以返回的几个有效的输出,取决于的价值发生“最高”“最低”和是否PreserveRange选项指定。

扩展功能

版本历史

介绍了R2015a

全部展开