MATLAB unique 函数去掉重复元素并排序。多输出时可同时拿到首次出现位置和映射下标。
语法
C = unique(A)
[C, ia, ic] = unique(A)
C = unique(A, 'rows') % 按整行去重输入参数
| 参数 | 说明 |
|---|---|
A | 输入数组 |
输出
第一个输出是去重排序后的值;第二个是每个唯一值在原数组的首次位置;第三个是每个原元素对应的唯一值下标。
示例
unique([3 1 2 3 1 4])ans =
1 2 3 4三输出:
A = [5 3 5 3 7];
[C, ia, ic] = unique(A)C = 3 5 7
ia = 2 1 5
ic = 2 1 2 1 3按整行去重:
M = [1 2; 3 4; 1 2];
unique(M, 'rows')ans =
1 2
3 4注意事项
- 统计频次可用
histcounts(ic, max(ic))或 tabulate; - 对字符串/cell 数组同样支持去重。