主要内容

独特的

数组中的唯一值

描述

例子

C=唯一(一个返回与中相同的数据一个,但没有重复。C按顺序排序。

  • 如果一个是表或时间表,然后独特的返回独特的行一个按顺序排序。对于时间表,独特的确定行是否唯一时,将行时间和行值考虑在内,并分类输出时间表C按排时间。

  • 如果一个是一个分类数组,然后排序顺序由类别的顺序确定。

例子

C=唯一(一个,,,,setOrder返回独特的值一个按照特定顺序。setOrder“排序”(默认)或'稳定的'

C=唯一(一个,,,,发生指定在重复值的情况下返回哪些索引。发生'第一的'(默认)或'最后的'

例子

C=唯一(一个,,,,___,,,,“行”C=唯一(一个,,,,“行”,,,,___对待每一行一个作为一个实体,返回独特的行一个按顺序排序。您必须指定一个并且可以选择指定setOrder或者发生

“行”选项不支持单元格数。万博1manbetx

[[C,,,,ia,,,,我知道了] =唯一(___还返回索引向量ia我知道了使用任何先前的语法。

  • 如果一个是一个向量,然后c = a(ia)a = c(ic)

  • 如果一个是矩阵或数组,然后c = a(ia)a(:) = c(ic)

  • 如果是“行”指定选项,然后c = a(ia,:)a = c(ic,:)

  • 如果一个是桌子或时间表,然后c = a(ia,:)a = c(ic,:)

例子

[[C,,,,ia,,,,我知道了] =唯一(一个,'遗产'),,,,[[C,,,,ia,,,,我知道了] =唯一(一个,“行”,“遗产”),,,,[[C,,,,ia,,,,我知道了] =唯一(一个,,,,发生,'遗产'),和[[C,,,,ia,,,,我知道了] =唯一(一个,“行”,发生,'遗产')保留行为独特的R2012B和先前版本的功能。

'遗产'选项不支持分类数组,日期阵列,持万博1manbetx续时间数组,日历数阵列,表格或时间表。

例子

全部收缩

定义具有重复值的向量。

a = [9 2 9 5];

找到独特的值一个

C =唯一(a)
C =1×32 5 9

创建一个带有一些重复数据的表。

名称= {“弗雷德”;“贝蒂”;'鲍勃';'乔治';'简'};年龄= [38; 43; 38; 40; 38];高度= [71; 69; 64; 67; 64];重量= [176; 163; 131; 185; 131];a =表(年龄,身高,体重,'Rownames',姓名)
a =5×3桌年龄高度体重___ ______ ______弗雷德38 71 176 BETTY 43 69 163 BOB 38 64 131 GEORGE 40 67 185 JANE 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 = a(ia,:)
b =3×3桌年龄高度体重___ ______ ______弗雷德38 71 176乔治40 67 185贝蒂43 69 163

定义具有重复值的向量。

a = [9 2 9 5];

找到独特的值一个和索引向量ia我知道了,这样c = a(ia)a = c(ic)

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

创建一个带有一些重复行的10 x-3矩阵。

a = randi(3,10,3)
a =10×33 1 2 3 3 1 1 3 3 3 3 2 3 3 3 1 1 3 1 2 3 2 3 3 3 3 3 3 3 3 1

找到独特的行一个基于前两列中的数据。指定三个输出以返回索引向量ia我知道了

[c,ia,ic] = unique(a(:,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 = a(ia,:)
ua =7×31 1 3 1 2 3 1 3 3 3 3 3 3 1 2 3 2 3 3 3 1

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

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

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

找到向量中的唯一元素。返回索引向量ia我知道了

[c,ia,ic] = unique(a);

计算每个元素中每个元素的次数C出现在一个。指定我知道了作为第一个输入累积1作为第二个输入,以使函数计数重复的下标我知道了。总结结果。

a_counts = accamaray(ic,1);value_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] = unique(a,'稳定的'
C =1×39 2 5
ia =3×11 2 4
ic =4×11 2 1 3

另外,您可以指定“排序”命令。

[c,ia,ic] = unique(a,“排序”
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 Nan Nan

独特的零食值是不同的。

创建一个向量X。获得第二个矢量y通过改变和不转化X。这种转变引入了圆形差异y

x =(1:6)'*pi;y = 10.^log10(x);

验证这一点Xy通过差异并不相同。

X-y
ans =6×110-14×0.0444 0 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

利用二喹使用较小的公差进行比较。二喹将其视为平等的元素对待。

c =二喹酚([x; y])
C =6×13.1416 6.2832 9.4248 12.5664 15.7080 18.8496

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

a = {'一',,,,'二',,,,'二十二',,,,'一',,,,'二'};

找到包含在一个

C =唯一(a)
C =1x4单元{'一个'} {'一个'} {'二十-two'} {'两个'}

创建一个字符向量的单元格数组,一个,其中一些向量有落后空间。

a = {'狗',,,,'猫',,,,'鱼',,,,'马',,,,'狗 ',,,,'鱼 '};

找到包含在一个

C =唯一(a)
C =1x6单元{'cat'} {'dog'} {'dog'} {'fish'} {'fish'} {'horse'}

独特的将角色向量的细胞阵列中的尾随空间视为不同的字符。

使用'遗产'标志以保留行为独特的从R2012B和代码中的先验版本。

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

a = [9 2 9 5];[C1,IA1,IC1] = unique(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

输入参数

全部收缩

输入数组。

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

  • 如果一个是时间表,然后独特的考虑行时。两个具有相同值但不同时间的行不相等的行。

  • 如果一个是一个分类数组,然后排序顺序由类别的顺序确定。要查看分类数组的排序顺序,请使用类别功能。

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

  • 种类(或者sor为了“行”选项)

  • NE

对象类方法必须彼此一致。这些对象包括从同一根类得出的异质阵列。例如,一个可以是图形对象的一系列手柄。

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

旗帜 描述

“排序”

中的值(或行)C按返回的分类顺序返回种类

例子

c =唯一([5 5 3 4],,“排序”
C = 3 4 5

'稳定的'

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

例子

c =唯一([5 5 3 4],,'稳定的'
C = 5 3 4

数据类型:char|细绳

出现标志,指定为'第一的'或者'最后的',指示是否ia应包含第一个或最后一个索引到在一个

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

数据类型:char|细绳

输出参数

全部收缩

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

  • 如果是“行”标志未指定,并且一个是行矢量,然后C是行矢量。

  • 如果是“行”标志未指定,并且一个不是行矢量,那么C是列矢量。

  • 如果是“行”指定标志,然后C是包含独特行的矩阵一个

索引一个,作为索引的列向量返回到第一的重复元素的发生。当。。。的时候'遗产'指定标志,ia是包含索引的行矢量最后的重复元素的发生。

这些指数通常满足c = a(ia)。如果一个是桌子,或者“行”指定选项,然后c = a(ia,:)

索引C,当'遗产'标志未指定。我知道了包含满足以下属性的索引。

  • 如果一个是一个向量,然后a = c(ic)

  • 如果一个是矩阵或数组,然后a(:) = c(ic)

  • 如果一个是桌子,或者“行”指定选项,然后a = c(ic,:)

提示

  • 利用二喹使用公差找到唯一的浮点数。

  • 要在表或时间表中找到相对于变量子集的唯一行,您可以使用列订阅。例如,您可以使用唯一(a(:,,,var)), 在哪里var是一个正整数,正整数的向量,一个可变名称,可变名称的单元格数组或逻辑向量。或者,您可以使用VARTYPE创建一个选择指定类型的变量的下标。

扩展功能

版本历史记录

在R2006a之前引入