首页 > 编程笔记 > MATLAB笔记 阅读:4

MATLAB unique()函数的用法

在 MATLAB 中,unique() 函数用于计算并去掉集合中去掉重复的元素,显示剩余的唯一值元素集合。

unique() 函数的调用格式及说明如下表所示。

表:unique() 函数调用格式及说明
调用格式 说明
C = unique(A) 返回由 A 中唯一值组成的数组 C,并按照从小到大的顺序排序
C = unique(A,setOrder) 以特定顺序返回 A 的唯一值。setOrder 可以是 sorted(默认值)或 stable
C = unique(A,occurrence) 指定遇到重复值时应返回哪个索引。occurrence 可以是 first(默认值)或 last
C = unique(A,...,'rows')
C = unique(A,'rows',...)
将 A 中的每一行视为单个实体,并按排序顺序返回 A 中的唯一行
[C,ia,ic] = unique(...) 返回索引向量 ia 和 ic。其中,ia 是包含各元素在 A 中首次复现处的对应索引的列向量;ic 是 C 的索引列向量
[C,ia,ic] = unique(A,'legacy')
[C,ia,ic] = unique(A,'rows','legacy')
[C,ia,ic] = unique(A,occurrence,'legacy')
[C,ia,ic] = unique(A,'rows',occurrence,legacy)
保留 R2012b 和早期版本中 unique 函数的行为。legacy 选项不支持分类数组、日期时间数组、持续时间数组、日历持续时间数组、表或时间表

【实例 1】计算矩阵的唯一值。
在 MATLAB 命令行窗口中输入如下命令:
>> clear                   % 清除工作区的变量
>> A=[1,2,1;4,6,4;5,9,6];  % 定义包含一个重复值的矩阵A
>> C = unique(A)           % 按照从小到大的顺序显示A中的数据,不包含重复项
C =
     1
     2
     4
     5
     6
     9

【实例 2】计算矩阵的唯一值并显示索引。
在 MATLAB 命令行窗口中输入如下命令:
>> clear                    % 清除工作区的变量
>> A=[1 2 1;4 6 4;5 9 6];   % 定义一个包含重复值的矩阵A
% 按照从小到大的顺序显示A中的数据,不包含重复项,并返回对应的位置列向量I和J
>> [B,I,J] = unique(A)
B =
     1
     2
     4
     5
     6
     9
I =
     1
     4
     2
     3
     5
     6
J =
     1
     3
     4
     2
     5
     6
     1
     3
     5

相关文章