主要内容

独特的

数组中的唯一值

描述

例子

C=独特(一个返回与一个,但没有重复。C是有序的。

  • 如果一个那么,是桌子还是时刻表独特的返回唯一的行一个在排序顺序。的航班时刻表,独特的在确定行是否唯一时,考虑行时间和行值,并对输出时间表进行排序C行乘以。

  • 如果一个是一个类别数组,则排序顺序由类别的顺序决定。

例子

C=独特(一个setOrder的唯一值一个以特定的顺序。setOrder可以“排序”(默认)或“稳定”

C=独特(一个发生指定在重复值的情况下返回哪些索引。发生可以“第一”(默认)或“最后一次”

例子

C=独特(一个___“行”C=独特(一个“行”___处理每一行一个作为一个单独的实体,并返回一个在排序顺序。您必须指定一个并且可以选择指定setOrder发生

“行”选项不支持单元格数组。金宝app

Cia集成电路) =独特(___也返回索引向量ia集成电路使用任何前面的语法。

  • 如果一个是向量吗C = (ia)一个= C(集成电路)

  • 如果一个是矩阵还是数组C = (ia)(,) = C (ic)

  • 如果“行”选项,则: C = (ia): = C(集成电路)

  • 如果一个那么,是桌子还是时刻表呢: C = (ia): = C(集成电路)

例子

Cia集成电路) =独特(一个“遗产”)Cia集成电路) =独特(一个、“行”、“遗产”)Cia集成电路) =独特(一个发生“遗产”),Cia集成电路) =独特(一个“行”,发生“遗产”)保持行为独特的函数从R2012b和以前的版本。

“遗产”选项不支持分类数组、日期时间数组金宝app、持续时间数组、calendarDuration数组、表或时间表。

例子

全部折叠

定义一个具有重复值的向量。

A = [9 2 9 5];

的唯一值一个

C =独特(A)
C =1×32 5 9

创建一个包含重复数据的表。

Name = {“弗雷德”“贝蒂”“鲍勃”“乔治”“简”};年龄=[38,43岁,38;40;38);身高= [71;69;64;67;64);重量= [176;163;131;185;131);一个=表(年龄、身高、体重、“RowNames”、名称)
一个=5×3表年龄身高体重___ ______ ______ Fred 38 71 176贝蒂43 69 163鲍勃38 64 131乔治40 67 185简38 64 131

求的唯一行一个独特的返回一个按第一个变量排序年龄然后是第二个变量高度

C =独特(A)
C =4×3表年龄身高体重___ ______ ______鲍勃38 64 131弗雷德38 71 176乔治40 67 185贝蒂43 69 163

在第一个变量中找到具有唯一值的表行年龄.如果您只希望一个表变量包含唯一的值,则可以使用独特的从表中提取这些行。

[C ia] =独特(A.Age);: B = (ia)
B =3×3表年龄身高体重___ ______ ______弗雷德38 71 176乔治40 67 185贝蒂43 69 163

定义一个具有重复值的向量。

A = [9 2 9 5];

的唯一值一个指标向量ia集成电路,这样C = (ia)一个= C(集成电路)

[C, ia, ic] =唯一的(A)
C =1×32 5 9
ia =3×12 4 1
ic =4×13 1 3 2

创建一个带有重复行的10 × 3矩阵。

A =兰迪(3 10 3)
一个=10×33 1 2 3 3 1 1 3 3 3 3 3 3 3 3 1 1 3 3 1 1 3 1 2 3 3 3 3 3 1 1 3 1 2 3 3 3 3 3 3 3 3 1 1 2 3 3 3 3 3 3 1 1 2 3 3 3 3 3 3 3 1

求的唯一行一个根据前两列的数据。指定三个输出以返回索引向量ia集成电路

[C ia ic] =独特((:,1:2),“行”
C =7×21 1 1 2 1 3 2 3 3 1 3 2 3 3
ia =7×16 7 3 5 1 4 2
ic =10×15 7 3 6 4 1 2 4 7 7

使用ia指数为一个并检索前两列中具有唯一元素组合的行。

: uA = (ia)
uA =7×31 1 3 1 2 3 1 3 3 3 3 3 1 2 3 3 3 1 2 3 3 3 1 2 3 3 3 1 2 3 3 3 1

找到向量中唯一的元素,然后使用accumarray计算每个唯一元素出现的次数。

创建一个从1到5的随机整数向量。

A = randi([1 5],200,1);

找出向量中唯一的元素。返回索引向量ia集成电路

[C ia ic] =独特的(一个);

计算每个元素进入的次数C出现在一个.指定集成电路作为第一个输入accumarray1作为第二个输入,以便函数计算重复下标集成电路.总结结果。

a_counts = accumarray (ic, 1);[C, a_counts] = [C, a_counts]
value_counts =5×21 46 2 36 3 38 4 39 5 41

使用setOrder参数指定中值的顺序C

指定“稳定”如果你想要这些值C有与…相同的顺序一个

A = [9 2 9 5];[C, ia, ic] =唯一的“稳定”
C =1×39 2 5
ia =3×11 2 4
ic =4×11 2 1 3

或者,您可以指定“排序”秩序。

[C, ia, ic] =唯一的“排序”
C =1×32 5 9
ia =3×12 4 1
ic =4×13 1 3 2

定义一个包含

A = [5 5 NaN NaN];

的唯一值一个

C =独特(A)
C =1×35南南

独特的对待价值观是截然不同的。

创建一个向量x.得到第二个向量y通过转化和不转化x.这个转换引入了四舍五入的差异y

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

验证xy是不同的。

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

使用独特的查找连接的向量中唯一的元素(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

创建字符向量的单元格数组。

一个= {“一个”“两个”“22”“一个”“两个”};

找到包含的唯一字符向量一个

C =独特(A)
C =1 x4单元格{'One'} {'One'} {' 22 '} {'two'}

创建一个字符向量的单元格数组,一个,其中一些向量的末尾有空白。

一个= {“狗”“猫”“鱼”“马”“狗”“鱼”};

找到包含的唯一字符向量一个

C =独特(A)
C =1 x6单元格{“猫”}{‘狗’}{‘狗’}{‘鱼’}{‘鱼’}{'马'}

独特的将字符向量单元格数组的尾随空格视为不同的字符。

使用“遗产”国旗的行为保存独特的从R2012b和以前的版本在您的代码。

找到独特的元素一个与当前的行为。

A = [9 2 9 5];[C1, ia1, ic1] =唯一(A)
C1 =1×32 5 9
ia1 =3×12 4 1
ic1 =4×13 1 3 2

找到独特的元素一个,并保留遗留行为。

[C2, ia2, ic2] = unique(A,“遗产”
C2 =1×32 5 9
ia2 =1×32 4 3
ic2 =1×43 1 3 2

输入参数

全部折叠

输入数组。

  • 如果一个那么,是一张桌子吗独特的考虑行名。具有相同值但名称不同的两行被认为是相等的。

  • 如果一个那么,有时间表吗独特的考虑行时间。具有相同值但时间不同的两行被认为不相等。

  • 如果一个是一个类别数组,则排序顺序由类别的顺序决定。要查看类别数组的排序顺序,请使用类别函数。

一个也可以是具有以下类方法的对象:

  • 排序(或sortrows“行”选项)

对象类方法必须彼此一致。这些对象包括来自同一根类的异构数组。例如,一个可以是图形对象句柄数组。

订单标志,指定为“排序”“稳定”中值(或行)的顺序C

国旗 描述

“排序”

中的值(或行)C按返回的排序顺序返回排序

例子

C = unique([5 5 3 4],“排序”
5 .答案:C

“稳定”

中的值(或行)C以相同的顺序返回一个

例子

C = unique([5 5 3 4],“稳定”
4 .选C

数据类型:字符|字符串

出现标志,指定为“第一”“最后一次”表明,是否ia是否应该包含第一个或最后一个索引的重复值在一个

出现国旗 意义
“最后一次” 中有重复的值(或行)一个,然后ia包含重复值的最后一次出现的索引。例如:[C,ia,ic] = unique([9 9 9],'last','legacy')返回ia = 3.这是默认行为“遗产”标志指定。
“第一” 中有重复的值(或行)一个,然后ia包含重复值的第一次出现的索引。例如:[C,ia,ic] = unique([9 9 9],'first')返回ia = 1.这是默认行为。

数据类型:字符|字符串

输出参数

全部折叠

独特的数据一个,作为数组返回。的类C是否与输入的类相同一个.的形状C取决于输入是向量还是矩阵:

  • 如果“行”未指定标志一个是行向量吗C是一个行向量。

  • 如果“行”未指定标志一个不是行向量吗C是一个列向量。

  • 如果“行”则指定FlagC一个矩阵是否包含唯一的行一个

索引一个的索引列向量返回第一个重复元素的出现。当“遗产”指定标记,ia的行向量是否包含索引去年重复元素的出现。

指标一般满足C = (ia).如果一个是一张桌子,还是“行”选项,则: C = (ia)

索引C时作为列向量返回“遗产”未指定Flag。集成电路包含满足以下属性的索引。

  • 如果一个是向量吗一个= C(集成电路)

  • 如果一个是矩阵还是数组(,) = C (ic)

  • 如果一个是一张桌子,还是“行”选项,则: = C(集成电路)

提示

  • 使用uniquetol使用公差查找唯一的浮点数。

  • 要在表或时间表中找到与变量子集相关的唯一行,可以使用列下标。例如,你可以用独特的((:,var)),在那里var是正整数、正整数向量、变量名、变量名单元格数组或逻辑向量。或者,您可以使用vartype创建用于选择指定类型变量的下标。

扩展功能

之前介绍过的R2006a