文档帮助中心文档
数组中的唯一值
c =唯一(a)
C =独特(setOrder)
C =独特(发生)
c =唯一(a,___, '行')
c =唯一(a,'行',___)
[C ia ic] =独特(___)
[C,IA,IC] =独特(A,'遗留')
[C ia ic] =独特(“行”,“遗产”)
[C,IA,IC] =独特(A,发生,'遗留')
[C ia ic] =独特(‘行’,发生,“遗产”)
例子
C=唯一(一个)返回与中相同的数据一个,但没有重复。C按顺序排列。
C=唯一(一个)
C
一个
如果一个是一个表或时间表,然后独特返回唯一行一个在排序顺序。对于时间表,独特在确定行是否唯一时,考虑行时间和行值,并对输出时间表进行排序C行乘以。
独特
如果一个是类别数组,则排序顺序由类别的顺序确定。
C=唯一(一个,setOrder)返回唯一的值一个以特定的顺序。setOrder可以'排序'(默认)或“稳定”.
C=唯一(一个,setOrder)
setOrder
'排序'
“稳定”
C=唯一(一个,发生)指定在重复值的情况下返回哪些索引。发生可以“第一”(默认)或“最后一次”.
C=唯一(一个,发生)
发生
“第一”
“最后一次”
C=唯一(一个,___,“行”)和C=唯一(一个,“行”,___)对待每行一个的唯一行一个在排序顺序。您必须指定一个并且可选择可以指定setOrder或者发生.
C=唯一(一个,___,“行”)
“行”
C=唯一(一个,“行”,___)
的“行”选项不支持单元格阵列。金宝app
[C,ia,集成电路] =独特(___)也返回索引向量ia和集成电路使用以前的任何语法。
[C,ia,集成电路] =独特(___)
ia
集成电路
如果一个是矢量吗C = (ia)和一个= C(集成电路).
C = (ia)
一个= C(集成电路)
如果一个是矩阵还是数组C = (ia)和(,) = C (ic).
(,) = C (ic)
如果“行”然后,指定选项c = a(ia,:)和: = C(集成电路).
c = a(ia,:)
: = C(集成电路)
如果一个是桌子还是时刻表c = a(ia,:)和: = C(集成电路).
[C,ia,集成电路] =独特(一个,'遗产'),[C,ia,集成电路] =独特(一个、“行”、“遗产”),[C,ia,集成电路] =独特(一个,发生,'遗产'),和[C,ia,集成电路] =独特(一个“行”,发生,'遗产')保持。的行为独特功能从R2012b和以前的版本。
[C,ia,集成电路] =独特(一个,'遗产')
[C,ia,集成电路] =独特(一个、“行”、“遗产”)
[C,ia,集成电路] =独特(一个,发生,'遗产')
[C,ia,集成电路] =独特(一个“行”,发生,'遗产')
的'遗产'选项不支持分类数组、日期时间数组金宝app、持续时间数组、calendarDuration数组、表或时间表。
'遗产'
全部折叠
定义一个具有重复值的向量。
A = [9 2 9 5];
找到唯一的值一个.
C =1×32 5 9
使用一些重复数据创建表。
Name = {'弗雷德';'贝蒂';“鲍勃”;“乔治”;'简'};年龄= [38; 43; 38; 40; 38];高度= [71; 69; 64; 67; 64];重量= [176; 163; 131; 185; 131];A =表(年龄,身高,体重,'rownames',名称)
一个=5×3表年龄身高体重___ ______ ______弗雷德38 71 176贝蒂43 69 163鲍勃38 64 131乔治40 67 185简38 64 131
找到独特的行一个.独特返回行的行一个按第一个变量排序年龄然后由第二个变量高度.
年龄
高度
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
找到唯一的值一个指标向量ia和集成电路,这样C = (ia)和一个= C(集成电路).
[C, ia, ic] = unique(A)
ia =3×12 4 1
IC =4×13 1 3 2
创建一个包含重复行的10 × 3矩阵。
A =兰迪(3 10 3)
一个=10×31 1 2 3 3 1 1 3 3 3 3 3 3 3 3 3 3 3 1 1 1 2 3 3 3 3 3 3 3 3 1 1 1 2 2 2 3 3 3 3 3 3 3 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 3 1 3 2 3 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 1 3 1 2 3 1 3 3 3 3 3 3 3 3 3 1 2 3 3 3 3 3 1 2 2 3 3 3 3 3 3 1 2 2 3 3 3 3 3 1
在向量中找到唯一的元素,然后使用accumarray计算每个唯一元素出现的次数。
accumarray
创建一个从1到5的随机整数向量。
A = randi([1 5],200,1);
找出向量中唯一的元素。返回索引向量ia和集成电路.
[c,ia,ic] =独特(a);
计算每个元素进入的次数C出现在一个.指定集成电路作为第一个输入accumarray和1作为第二个输入,使函数计数重复下标入集成电路.总结结果。
1
a_counts = Accumarray(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] =独特(a,“稳定”)
C =1×39 2 5
ia =3×11 2 4.
IC =4×11 2 1 3
或者,您可以指定'排序'秩序。
[c,ia,ic] =独特(a,'排序')
定义包含的向量南.
南
a = [5 5南楠];
C =1×35南南
独特对待南值截然不同。
创建矢量x.获得第二个向量y通过转化和不转化x.这种转变介绍了圆截止差异y.
x
y
x =(1:6) *π;y = 10 ^ log10 (x);
验证x和y通过取差得到的结果并不相同。
x - y
ans =6×110.-14年× 0.0444 0 0 0 0 -0.3553
使用独特在连接载体中找到唯一的元素[x; y].的独特函数执行精确比较并确定其中的一些值x不完全等于值y.这些元素有非零的差值x - y.因此,c包含值出现要重复。
[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将容忍范围内的元素平等对待。
uniquetol
c = Uniquetol([x; y])
C =6×13.1416 6.2832 9.4248 12.5664 15.7080 18.8496
创建一个字符向量的单元格数组。
一个= {“一个”,'二','22',“一个”,'二'};
中包含的唯一字符向量一个.
C =1x4细胞{'One'} {'One'} {' 22 '} {'two'}
创建一个字符向量的单元格数组,一个,其中一些向量后面有空白。
一个= {“狗”,'猫',“鱼”,“马”,'狗 ',“鱼”};
C =1 x6单元格{“猫”}{‘狗’}{‘狗’}{‘鱼’}{‘鱼’}{'马'}
独特将字符向量的细胞阵列中的尾随空格视为明显的特征。
使用'遗产'标记来保持行为独特从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
找到独特的元素一个,并保留遗留行为。
[c, ia2, ic2] =唯一的(A,'遗产')
C2 =1×32 5 9
IA2 =1×32 4 3
ic2 =1×43 1 3 2
输入数组。
如果一个是一张桌子,然后独特做不是考虑行姓名。具有相同值但不同名称的两行被认为是相等的。
如果一个是一个时间表,然后独特考虑行时间。具有相同值但时间不同的两行不被认为是相等的。
如果一个是类别数组,则排序顺序由类别的顺序确定。要查看分类数组的排序顺序,请使用类别函数。
类别
一个也可以是具有以下类方法的对象:
种类(或sortrows为“行”选项)
种类
sortrows
NE.
对象类方法必须彼此一致。这些对象包括来自同一个根类的异构数组。例如,一个可以是图形对象的句柄数组。
订单标志,指定为'排序'或者“稳定”,表示输入值(或行)的顺序C.
值(或行)C按照返回的排序订单返回种类.
C = unique([5 5 3 4],'排序')
答案:C
值(或行)C按照与in相同的顺序返回一个.
C = unique([5 5 3 4],“稳定”)
c = 5 3 4
数据类型:字符|细绳
字符
细绳
出现标志,指定为“第一”或者“最后一次”表明,是否ia应该包含第一个或最后一个索引的重复值在一个.
[C,ia,ic] = unique([9 9],'last','继承')
IA = 3.
[C,IA,IC] =独特([9 9 9],'第一')
ia = 1
独特的数据一个,以数组形式返回。的类C与输入的类相同一个.形状C取决于输入是矢量还是矩阵:
如果“行”标志未指定和一个是行向量吗C是一个行向量。
如果“行”标志未指定和一个那时不是一排矢量C是一个列向量。
如果“行”指定标志,然后C一个矩阵是否包含唯一的行一个.
指数到一个,作为索引的列向量第一个反复元素的发生。当。。。的时候'遗产'指定标记,ia一个包含指标的行向量最后的反复元素的发生。
这些指标一般满足C = (ia).如果一个是桌子,还是如果“行”然后,指定选项c = a(ia,:).
指数到C时作为列向量返回'遗产'未指定标志。集成电路包含满足下列属性的索引。
如果一个是矢量吗一个= C(集成电路).
如果一个是矩阵还是数组(,) = C (ic).
如果一个是桌子,还是如果“行”然后,指定选项: = C(集成电路).
使用uniquetol使用公差找到独特的浮点数。
要在表或时间表中找到与变量子集相关的唯一行,可以使用列下标。例如,您可以使用独特(A(:,vars.)),在那里vars.是正整数,正整数的矢量,变量名称,变量名称的单元格数组,或逻辑向量。或者,您可以使用vartype创建选择指定类型变量的下标。
独特(A(:,vars.))
vars.
vartype
这个函数支持高数组,但有以下金宝app限制:
对于高版本和高表目,请使用语法:
[C,IA,IC] =独特(A)
对于高矩阵,使用语法:
c =唯一(a,'行')
[c,ia,ic] =唯一(a,'行')
有关更多信息,请参见用于内存不足数据的高数组.
用法说明和限制:
代码生成不支持第一个参数的单元格数组。金宝app
当不指定“行”选择:
输入一个一定是向量。如果您指定'遗产'选项,输入一个一定是行向量。
可变大小行向量的第一个维度必须有固定的长度1。可变大小列向量的第二个维度必须有固定的长度1。
输入[]不支持。金宝app例如,使用1 × 0或0 × 1输入,0 (1,0),表示空集。
[]
0 (1,0)
如果您指定'遗产'选项,然后空输出是行向量,1-by-0。它们永远不会0-by-0。
当您指定两个“行”选择和'遗产'选项,输出ia和集成电路是列向量。如果这些输出是空的,那么它们是0乘1的,即使输出C0-by-0。
当。。。的时候setOrder不是“稳定”或者当您指定时'遗产'选项,输入一个必须已经按升序排序。第一个输出,C,按升序排列。
复杂输入必须是单身的或者双.
单身的
双
的'遗产'不支持Flag。金宝app
不支持64位整数。金宝app
有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
此函数完全支持分布式数组。金宝app有关更多信息,请参见使用分布式阵列运行MATLAB函数(并行计算工具箱).
相交|ismember.|issorted|setdiff|setxor.|种类|联盟|uniquetol
相交
ismember.
issorted
setdiff
setxor.
联盟
您有这个示例的一个修改版本。要用编辑打开这个例子吗?
您点击了一个对应于这个MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。
与当地办事处联系