27集合

Octave具有许多用于管理数据集的函数。集合被定义为唯一元素的集合,通常从按升序排序的数字向量表示。任何向量或矩阵都可以通过使用unique作用但是,没有必要显式创建集合,因为所有对集合进行操作的函数都会在继续操作之前将其输入转换为集合。

 
: y = unique (x)
: y = unique (x, "rows")
: y = unique (…, "sorted")
: y = unique (…, "stable")
: [y, i, j] = unique (…)
: [y, i, j] = unique (…, "first")
: [y, i, j] = unique (…, "last")
: [y, i, j] = unique (…, "legacy")

返回的唯一元素x.

如果输入x是列向量,则返回列向量;否则,返回一个行向量。x也可以是环的元胞数组。

如果可选参数"rows"则返回的uniquerowsx。输入必须是二维数字矩阵才能使用此参数。

可选参数"sorted"/"stable"控制唯一值在输出中显示的顺序。默认为"sorted"并且输出中的值按升序排列。备选方案"stable"保留输入中的顺序x.

如果指定,返回列索引向量ij使得y= x(i)x= y(j).

此外,如果i是指定的输出,然后是其中一个标志"first""last"可以给出。如果"last"如果已指定,则返回中可能的最高索引i,否则,如果"first"指定,返回最低值。默认为"first".

示例1:排序顺序

unique ([3, 1, 1, 2])
⇒ [1, 2, 3]
unique ([3, 1, 1, 2], "stable")
⇒ [3, 1, 2]

示例2:索引选择

[~, i]=唯一([3,1,1,2],“第一个”)⇒ i= [2; 4; 1][~, i]=唯一([3,1,1,2],“最后”)⇒ i= [3; 4; 1]

编程说明:输入标志"legacy"将算法更改为与兼容MATLABR2012b之前的版本。具体而言,索引排序标志更改为"last",以及输出的形状i, j将遵循输入的形状xratherthan总是列向量。

第三输出,j,尚未在排序顺序为"stable".

详见: uniquetol, union, intersect, setdiff, setxor, ismember.

广告
 
: c = uniquetol (A)
: c = uniquetol (A, tol)
: c = uniquetol (…, property, value)
: [c, ia, ic] = uniquetol (…)

返回的唯一元素A在公差范围内tol.

两个值,xy,在相对公差范围内,如果abs(x- y) <= tol*最大(abs(A(:))).

输入A必须是实数(非复数)浮点类型(双精度或单精度)。

如果tol未指定,对于双精度输入,默认公差为1e-12,对于单精度输入,则为1e-6。

也可以使用以下可选的属性/值对来调用该函数。属性/值对必须在其他输入参数之后传递:

"ByRows"默认false)

当为true时,返回的唯一行A. A必须是二维数组才能使用此参数。对于行,唯一性条件更改为所有(腹肌(x- y) <= tol*最大(abs(A1.其将一行的每一列分量与列特定容差进行比较。

广告
"DataScale"

公差测试更改为abs(x- y) <= tol*DS这里的DS是向量,除非属性"ByRows"是真的。那样的话DS可以是标量,也可以是长度等于中列数的向量A。使用值1.0对于DS将公差从相对公差更改为绝对公差。使用的值Inf将禁用测试。

广告
"OutputAllIndices"默认false)

当为真时,ia是一个元胞数组(而不是向量),包含的符号全部的中的元素A在中的值的公差范围内C。也就是说,中的每个数组ia对应于中的单个uniquevalueC,并且每个数组中的值对应于中的位置A.

广告

输出c是行向量,如果输入A是一个行向量。对于所有其他情况,都会返回一个列向量。

可选输出ia是列索引向量,使得c= A(ia)。如果"ByRows"属性istrue,条件为c= A(ia, :)。如果"OutputAllIndices"属性为true,则值A(ia{i})都在唯一值的公差范围内c(i).

可选输出ic是列索引向量,使得A= c(ic)A是一个向量。当A是矩阵,A(:) = c(ic)。如果"ByRows"则属性为真A= c(ic,:).

示例:小的舍入误差需要uniquetolunique

x = [1:5];
## Inverse_Function (Function (x)) should return exactly x
y = exp (log (x));
D = unique ([x, y])
⇒ [1   2   3   3   4   5   5]
C = uniquetol ([x, y])
⇒ [1   2   3   4   5]

详见: unique, union, intersect, setdiff, setxor, ismember.

广告

版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2