MATLAB--“unique”函数(matlab union函数)

2023-08-02 01:34:35 阅读:

 

1.语法

C = unique(A) C = unique(A,setOrder) C = unique(A,occurrence) C = unique(A,___,rows) C = unique(A,rows,___) [C,ia,ic] = unique(___) [C,ia,ic] = unique(A,legacy) [C,ia,ic] = unique(A,rows,legacy) [C,ia,ic] = unique(A,occurrence,legacy) [C,ia,ic] = unique(A,rows,occurrence,legacy)

2.说明

C = unique(A) 返回与 A中相同的数据,但是不包含重复项。C 已排序。如果 A 是表或时间表,则 unique 按排序顺序返回 A 中的唯一行。对于时间表,当确定行是否唯一时,unique 会考虑行时间和行值,并按行时间对输出时间表 C 排序。
A = [9 2 9 5]; C = unique(A); 2 5 9
C = unique(A,setOrder) 以特定顺序返回 A 的唯一值。setOrder 可以是 sorted(默认值)或 ’stable。
A = [9 2 9 5]; C = unique(A,sorted) 2 5 9 C = unique(A,stable) 9 2 5
C = unique(A,occurrence) 指定遇到重复值时应返回哪个索引。occurrence 可以是 ’first(默认值)或 ’last。C = unique(A,___,rows) 和 C = unique(A,rows,___) 将 A 中的每一行视为单个实体,并按排序顺序返回 A 中的唯一行。必须指定 A,而 setOrder 和 occurrence 是可选的。’rows 选项不支持元胞数组。
Name = {Fred;Betty;Bob;George;Jane}; Age = [38;43;38;40;38]; Height = [71;69;64;67;64]; Weight = [176;163;131;185;131]; A = table(Age,Height,Weight,RowNames,Name)

|Age|Height|Weight -|-|- Fred|38|71|176 Betty|43|69|163 Bob|38|64|131 George|40|67|185 Jane|38|64|131

C = unique(A)

|Age|Height|Weight -|-|- Bob|38|64|131 Fred|38|71|176 George|40|67|185 Betty|43|69|163

unique 按排序顺序(依次 Age 和 Height 排序)返回 A 的行。 - [C,ia,ic] = unique(___) 还可使用上述任何语法返回索引向量 ia 和 ic。 如果 A 是向量,则 C = A(ia) 且 A = C(ic)。 如果 A 是矩阵或数组,则 C = A(ia) 且 A(:) = C(ic)。 如果指定了 rows选项,则 C = A(ia,:) 且 A = C(ic,:)。 如果 A 是表或时间表,则 C = A(ia,:) 且 A = C(ic,:)。

A = [9 2 9 5];

计算 A 的唯一值以及索引向量 ia 和 ic,这样 C = A(ia) 和 A = C(ic)。

[C, ia, ic] = unique(A) C = 2 5 9 ia = 2 4 1 ic = 3 1 3 2
[C,ia,ic] = unique(A,legacy)、[C,ia,ic] = unique(A,rows,legacy)、[C,ia,ic] = unique(A,occurrence,legacy) 和 [C,ia,ic] = unique(A,rows,occurrence,legacy) 保留 R2012b 和早期版本中 unique 函数的行为。’legacy 选项不支持分类数组、日期时间数组、持续时间数组、日历持续时间数组、表或时间表。 基于前两列的数据查找 A中的唯一行。指定三个输出以返回索引向量 ia 和 ic。
A = randi(3,12,3) [C,ia,ic] = unique(A(:,1:2),rows) uA = A(ia,:)
查找向量中的唯一元素,然后使用 accumarray 计算每个唯一元素出现的次数。
a = randi([1 5],200,1); a_counts = accumarray(ic,1); value_counts = [C, a_counts]
unique 将 NaN 值视为不同的值。
A = [5 5 NaN NaN]; C = unique(A) C = 5 NaN NaN
存在数值错误的情况下的唯一元素
x = (1:6)*pi; y = 10.^log10(x); x-y 10^-14 * 0.0444 0 0 0 0 -0.3553

使用 unique 找出串联向量 [x;y]中的唯一元素。unique 函数执行精确比较,并确定 x 中有些值与 y 中的值不完全相等。这些值与那些在 x-y中具有非零差分的元素是同一批元素。因此,c 中包含一些貌似重复的值(实际上有细微差异)。

c = unique([x;y]) c = 3.1416 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496 18.8496

使用 uniquetol 应用一个较小的容差执行比较。uniquetol会将处于容差范围内的元素视为相等。

C = uniquetol([x;y]) C = 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496
关于字符向量元胞数组中的唯一项
A = {one,two,twenty-two,One,two}; C = unique(A) C = {One} {one} {twenty-two} {two}
带有尾随空白的字符向量元胞数组
A = {dog,cat,fish,horse,dog ,fish }; C = unique(A) C = {cat} {dog} {dog } {fish} {fish } {horse}


以上就是关于《MATLAB--“unique”函数(matlab union函数)》的全部内容,本文网址:https://www.7ca.cn/tg/43167.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明