|
|
力能扛鼎的作业本 · 柠檬鸭组织样本分析-腾讯云开发者社区-腾讯云· 1 年前 · |
|
|
霸气的沙滩裤 · GitHub收获1W星标《迁移学习导论》重新 ...· 2 年前 · |
|
|
霸气的烈马 · unity软件奔溃原因截图_unity一运行 ...· 2 年前 · |
|
|
逼格高的作业本 · 如何将字体粗细应用于在TextView上设置 ...· 2 年前 · |
|
|
空虚的枕头 · 多表间的关系-一对多-多对多-一对一-外键约 ...· 2 年前 · |
数组中的唯一值
返回与
C
= unique(
A
)
A
中相同的数据,但是不包含重复项。
C
已排序。
如果
A
是表或时间表,则
unique
按排序顺序返回
A
中的唯一行。对于时间表,当确定行是否唯一时,
unique
会考虑行时间和行值,并按行时间对输出时间表
C
排序。
如果
A
是分类数组,则排序顺序由类别的顺序确定。
指定遇到重复值时应返回哪个索引。
C
= unique(
A
,
occurrence
)
occurrence
可以是
'first'
(默认值)或
'last'
。
创建一个包含某些重复数据的表。
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)
A=5×3 table
Age Height Weight
___ ______ ______
Fred 38 71 176
Betty 43 69 163
Bob 38 64 131
George 40 67 185
Jane 38 64 131
查找
A
的唯一行。
unique
按排序顺序(依次按第一个变量
Age
和第二个变量
Height
排序)返回
A
的行。
C = unique(A)
C=4×3 table
Age Height Weight
___ ______ ______
Bob 38 64 131
Fred 38 71 176
George 40 67 185
Betty 43 69 163
在第一个变量
Age
中查找具有唯一值的表行。如果只希望一个表变量包含唯一值,可以使用
unique
返回的索引从表中提取这些行。
[C,ia] = unique(A.Age); B = A(ia,:)
B=3×3 table
Age Height Weight
___ ______ ______
Fred 38 71 176
George 40 67 185
Betty 43 69 163
定义包含一个重复值的向量。
A = [9 2 9 5];
计算
A
的唯一值以及索引向量
ia
和
ic
,这样
C = A(ia)
和
A = C(ic)
。
[C, ia, ic] = unique(A)
C = 1×3
2 5 9
ia = 3×1
ic = 4×1
创建一个包含某些重复行的 10×3 矩阵。
A = randi(3,10,3)
A = 10×3
3 1 2
3 3 1
1 3 3
3 2 3
2 3 3
1 1 3
1 2 3
2 3 2
3 3 2
3 3 1
基于前两列的数据查找
A
中的唯一行。指定三个输出以返回索引向量
ia
和
ic
。
[C,ia,ic] = unique(A(:,1:2),'rows')
C = 7×2
1 1
1 2
1 3
2 3
3 1
3 2
3 3
ia = 7×1
ic = 10×1
使用
ia
对
A
进行索引并检索包含前两列中元素的唯一组合的行。
uA = A(ia,:)
uA = 7×3
1 1 3
1 2 3
1 3 3
2 3 3
3 1 2
3 2 3
3 3 1
查找向量中的唯一元素,然后使用
accumarray
计算每个唯一元素出现的次数。
创建一个由 1 到 5 的随机整数组成的向量。
a = randi([1 5],200,1);
查找向量中的唯一元素。返回索引向量
ia
和
ic
。
[C,ia,ic] = unique(a);
计算
C
中的每个元素在
a
中出现的次数。将
ic
指定为
accumarray
的第一个输入,将
1
指定为第二个输入,以便函数计算
ic
中的重复下标。汇总结果。
a_counts = accumarray(ic,1); value_counts = [C, a_counts]
value_counts = 5×2
1 46
2 36
3 38
4 39
5 41
使用
setOrder
参数指定
C
中值的排序方式。
如果您想要
C
中的值与
A
中的值顺序相同,请指定
'stable'
。
A = [9 2 9 5];
[C, ia, ic] = unique(A,'stable')
C = 1×3
9 2 5
ia = 3×1
ic = 4×1
此外,还可以指定
'sorted'
顺序。
[C, ia, ic] = unique(A,'sorted')
C = 1×3
2 5 9
ia = 3×1
ic = 4×1
定义一个包含
NaN
的向量。
A = [5 5 NaN NaN];
计算
A
的唯一值。
C = unique(A)
C = 1×3
5 NaN NaN
unique
将
NaN
值视为不同的值。
创建向量
x
。通过变换和取消变换
x
来获取第二个向量
y
。此变换会向
y
中引入舍入误差。
x = (1:6)'*pi; y = 10.^log10(x);
通过取差值来验证
x
和
y
不同。
x-y
ans = 6×1
10-14 ×
0.0444
-0.3553
使用
unique
找出串联向量
[x;y]
中的唯一元素。
unique
函数执行精确比较,并确定
x
中有些值与
y
中的值不完全相等。这些值与那些在
x-y
中具有非零差分的元素是同一批元素。因此,
c
中包含一些
貌似
重复的值(实际上有细微差异)。
c = unique([x;y])
c = 8×1
3.1416
3.1416
6.2832
9.4248
12.5664
15.7080
18.8496
18.8496
使用
uniquetol
应用一个较小的容差执行比较。
uniquetol
会将处于容差范围内的元素视为相等。
C = uniquetol([x;y])
C = 6×1
3.1416
6.2832
9.4248
12.5664
15.7080
18.8496
创建字符向量元胞数组。
A = {'one','two','twenty-two','One','two'};
查找
A
中包含的唯一字符向量。
C = unique(A)
C = 1x4 cell
{'One'} {'one'} {'twenty-two'} {'two'}
创建字符向量元胞数组
A
,其中某些向量带有尾随空白。
A = {'dog','cat','fish','horse','dog ','fish '};
查找
A
中包含的唯一字符向量。
C = unique(A)
C = 1x6 cell
{'cat'} {'dog'} {'dog '} {'fish'} {'fish '} {'horse'}
unique
将字符向量元胞数组中的尾随空白视为不同的字符。
在代码中使用
'legacy'
标志以保留 R2012b 和早期版本中
unique
的行为。
计算
A
的唯一元素并保留当前行为。
A = [9 2 9 5]; [C1, ia1, ic1] = unique(A)
C1 = 1×3
2 5 9
ia1 = 3×1
ic1 = 4×1
计算
A
的唯一元素并保留旧版行为。
[C2, ia2, ic2] = unique(A, 'legacy')
C2 = 1×3
2 5 9
ia2 = 1×3
2 4 3
ic2 = 1×4
3 1 3 2
A
—
输入数组
输入数组。
如果
A
是表,则
unique
不会
考虑行名称。值相同而名称不同的两行将被视为相等。
如果
A
是时间表,则
unique
会考虑行时间。值相同而时间不同的两行不会被视为相等。
如果
A
是分类数组,则排序顺序由类别的顺序确定。要查看分类数组的排序顺序,请使用
categories
函数。
A
也可以是具有以下类方法的对象:
sort
(或
'rows'
选项的
sortrows
)
ne
对象类方法彼此之间必须一致。这些对象包括从相同根类导出的异构数组。例如,
A
可以是图形对象的句柄的数组。
occurrence
—
出现次数标志
'first'
(默认) |
'last'
出现次数标志,指定为
'first'
或
'last'
,指示在
A
中发现重复值时,
ia
是包含第一个索引还是最后一个索引。
| 出现次数标志 | 含义 |
|---|---|
'last'
|
如果
A
中有重复的值(或行),则
ia
包含最后一次出现重复值的索引。例如:
[C,ia,ic] = unique([9 9 9],'last','legacy')
返回
ia = 3
。这是指定了
'legacy'
标志时的默认行为。
|
'first'
|
如果
A
中有重复的值(或行),则
ia
包含第一次出现重复值的索引。例如:
[C,ia,ic] = unique([9 9 9],'first')
返回
ia = 1
。这是默认行为。
|
数据类型:
char
|
string
C
—
A
的唯一数据
A
的唯一数据,以数组形式返回。
C
的类与输入
A
的类相同。
C
的形状取决于输入是向量还是矩阵:
如果未指定
'rows'
标志并且
A
为行向量,则
C
为行向量。
如果未指定
'rows'
标志并且
A
不是行向量,则
C
为列向量。
如果指定了
'rows'
标志,则
C
是一个包含
A
的唯一行的矩阵。
ia
—
A
的索引
A
的索引,返回含各元素
首次
复现处的对应索引的列向量。如果指定了
'legacy'
标志,则
ia
是一个行向量,它包含元素
最后
复现处的对应索引。
这些索引通常满足
C = A(ia)
。如果
A
是一个表,或者如果指定了
'rows'
选项,则
C = A(ia,:)
。
ic
—
C
的索引
C
的索引,当未指定
'legacy'
标志时以列向量的形式返回。
ic
包含满足以下属性的索引。
如果
A
是向量,则
A = C(ic)
。
如果
A
是矩阵或数组,则
A(:) = C(ic)
。
如果
A
是一个表,或者如果指定了
'rows'
选项,则
A = C(ic,:)
。
使用
uniquetol
,可以利用容差查找唯一的浮点数。
要查找表或时间表中与变量子集相关的唯一行,可以使用列下标。例如,可以使用
unique(A(:,
,其中
vars
))
vars
为正整数、正整数向量、变量名称、变量名称元胞数组或逻辑向量。您也可以使用
vartype
创建一个下标,以选择指定类型的变量。
此函数支持 tall 数组,但存在以下限制:
对于 tall 向量和 tall 表,请使用以下语法:
C = unique(A)
[C,ia,ic] = unique(A)
对于 tall 矩阵,请使用以下语法:
C = unique(A,'rows')
[C,ia,ic] = unique(A,'rows')
有关详细信息,请参阅 使用 tall 数组处理无法放入内存的数据 。
用法说明和限制:
如果不指定
'rows'
选项:
输入
A
必须为向量。如果指定
'legacy'
选项,输入
A
必须为行向量。
可变大小行向量的第一个维度必须具有固定长度 1。可变大小列向量的第二个维度必须具有固定长度 1。
不支持输入
[]
。需使用 1×0 或 0×1 输入(例如
zeros(1,0)
)表示空集。
如果指定
'legacy'
选项,则空输出为行向量 1×0,永远不会是 0×0。
如果同时指定
'rows'
和
'legacy'
选项,则输出
ia
和
ic
为列向量。如果这些输出为空,则它们是 0×1,即使输出
C
是 0×0。
当
setOrder
不是
'stable'
或当您指定
'legacy'
选项时,输入
A
必须已按升序进行排序。第一个输出
C
按升序排序。
复数输入必须为
single
或
double
。
backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™
ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅 Run MATLAB Functions in Thread-Based Environment 。
用法说明和限制:
不支持
'legacy'
标志。
不支持 64 位整数。
有关详细信息,请参阅 Run MATLAB Functions on a GPU (Parallel Computing Toolbox) 。
此函数完全支持分布式数组。有关详细信息,请参阅 Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) 。
在 R2006a 之前推出
MathWorks
Accelerating the pace of engineering and science
MathWorks 公司是世界领先的为工程师和科学家提供数学计算软件的开发商。
|
|
力能扛鼎的作业本 · 柠檬鸭组织样本分析-腾讯云开发者社区-腾讯云 1 年前 |