unique是MATLAB中一个非常实用的函数,用于找出数组中的唯一值。它有几种不同的用法,可以根据需要选择合适的参数来控制输出的行为。以下是unique
函数的基本用法和一些常见参数的介绍:
基本语法:
C = unique(A)
[C,IA,IC] = unique(A)
[C,IA,IC] = unique(A,'stable')
-
A:输入数组,可以是一维向量、多维数组或字符串数组。
-
C:输出数组,包含了
A
中的唯一值。默认情况下,这些值按照升序排列。 -
IA(可选):一个索引数组,表示
A
中的每个元素在C
中的对应位置。换句话说,A(IA)
会给你一个与A
相同大小的数组,但其中的元素已按照它们在C
中的顺序重新排列。 -
IC(可选):如果
A
是一个矩阵,IC
是一个与A
同尺寸的矩阵,它标记了A
中每个元素对应的C
中的唯一值的索引。这对于重建原始数据很有用。 -
'stable'
(可选):当使用这个选项时,unique
不仅返回唯一值,而且保持这些值在A
中首次出现的顺序。这对于需要保持元素顺序不变的场景特别有用。
笔者在处理数据时会遇到一维数组中数据重复的情形,重复的数据会干扰画图。
如:
X = [1, 2, 3, 3, 3, 3, 4, 4]
% 去重后
x = unique(X)
%% x = [1, 2, 3 ,4]
unique多半不用在矩阵上,而用在数组上更合适。这里就介绍最基本的用法。
1.基本去重
A = [3, 1, 2, 1, 5, 2];
C = unique(A); % 返回排序后的唯一值:[1, 2, 3, 5]
2.保持顺序的去重
C_stable = unique(A, 'stable'); % 返回:[3, 1, 2, 5]