独特的
数组中的唯一值
句法
描述
例子
向量中的唯一值
表格中的独特行
创建一个带有一些重复数据的表。
名称= {“弗雷德”;“贝蒂”;'鲍勃';'乔治';'简'};年龄= [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
包含NAN的阵列中的唯一值
存在数值错误的唯一元素
创建一个向量X
。获得第二个矢量y
通过改变和不转化X
。这种转变引入了圆形差异y
。
x =(1:6)'*pi;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
包含值出现重复。
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
取决于输入是向量还是矩阵:
如果是
“行”
标志未指定,并且一个
是行矢量,然后C
是行矢量。如果是
“行”
标志未指定,并且一个
不是行矢量,那么C
是列矢量。如果是
“行”
指定标志,然后C
是包含独特行的矩阵一个
。
ia
- 索引一个
列向量
索引一个
,作为索引的列向量返回到第一的重复元素的发生。当。。。的时候'遗产'
指定标志,ia
是包含索引的行矢量最后的重复元素的发生。
这些指数通常满足c = a(ia)
。如果一个
是桌子,或者“行”
指定选项,然后c = a(ia,:)
。
我知道了
- 索引C
列向量
索引C
,当'遗产'
标志未指定。我知道了
包含满足以下属性的索引。
如果
一个
是一个向量,然后a = c(ic)
。如果
一个
是矩阵或数组,然后a(:) = c(ic)
。如果
一个
是桌子,或者“行”
指定选项,然后a = c(ic,:)
。
提示
利用
二喹
使用公差找到唯一的浮点数。要在表或时间表中找到相对于变量子集的唯一行,您可以使用列订阅。例如,您可以使用
唯一(a(:,,,
, 在哪里var
))var
是一个正整数,正整数的向量,一个可变名称,可变名称的单元格数组或逻辑向量。或者,您可以使用VARTYPE
创建一个选择指定类型的变量的下标。
扩展功能
高阵列
用比在内存中拟合更多的行的数组计算。
此功能支持具有限制的高阵列:万博1manbetx
对于高矢量和高桌,请使用语法:
C =唯一(a)
[C,IA,IC] =唯一(a)
对于高矩阵,使用语法:
c =唯一(a,'rows')
[c,ia,ic] = unique(a,'rows')
有关更多信息,请参阅高音数据的高阵列。
C/C ++代码生成
使用MATLAB®CODER™生成C和C ++代码。
用法注释和限制:
代码生成不支持第一个参数的单元格数组。万博1manbetx
当您不指定
“行”
选项:输入
一个
必须是矢量。如果指定'遗产'
选项,输入一个
必须是行矢量。可变大小行向量的第一维必须具有固定的长度1.变量大小列向量的第二维必须具有固定的长度1。
输入
[]
不支持。万博1manbetx例如,使用1 x-0或0-by-1输入零(1,0)
,代表空集。如果指定
'遗产'
选项,然后空输出为行向量,1 by-0。他们从来没有0 x-0。
当您指定两个
“行”
选项和'遗产'
选项,输出ia
和我知道了
是列向量。如果这些输出为空,则即使输出C
是0 x-0。当。。。的时候
setOrder
不是'稳定的'
或指定'遗产'
选项,输入一个
必须已经按顺序排序。第一个输出,C
,按顺序排序。复杂的输入必须是
单身的
或者双倍的
。
基于线程的环境
使用MATLAB®在后台运行代码背景池
或使用并行计算工具箱加速代码™螺纹池
。
此功能完全支持基于线程的环境。万博1manbetx有关更多信息,请参阅在基于线程的环境中运行MATLAB功能。
GPU数组
使用并行计算工具箱™在图形处理单元(GPU)上运行加速代码。
分布式阵列
使用Parallel Computing Toolbox™,将群集组合内存的组合存储器划分。
此功能完全支持分布式数组。万博1manbetx有关更多信息,请参阅运行具有分布式数组的MATLAB功能(并行计算工具箱)。
版本历史记录
matlab命令
您单击了与此MATLAB命令相对应的链接:
通过在MATLAB命令窗口中输入该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
如何获得最佳网站性能
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
美洲
- AméricaLatina(Español)
- 加拿大(英语)
- 美国(英语)