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,如对您有帮助可以分享给好友,谢谢。
声明