matlab中的unique函数(数组中的唯一值)

常用的几个unique函数如下:

C = unique(A);
[C, ia, ic] = unique(A);
[C,ia,ic] = unique(A,‘rows’);
[C,ia,ic] = unique(A(:,1:2),‘rows’);

如果 A 是向量,则 C = A(ia) 且 A = C(ic)。
如果 A 是矩阵或数组,则 C = A(ia) 且 A(:)= C(ic)。
如果指定了 ‘rows’ 选项,则 C = A(ia,:) 且 A = C(ic,:)。

1.C = unique(A)

返回与 A 中相同的数据,但是不包含重复项,C 已排序
当A是向量时;

A = [9 2 9 5]

A =

     9     2     9     5

K>> C = unique(A)

C =

     2     5     9
     

当A是矩阵时;

A=[1,3,4,5;1,2,4,5;2,1,3,4]

A =

     1     3     4     5
     1     2     4     5
     2     1     3     4

K>>  C = unique(A)%返回矩阵A的唯一值

C =

     1
     2
     3
     4
     5

2.[C, ia, ic] = unique(A)

计算 A 的唯一值以及索引向量 ia 和 ic,这样 C = A(ia) 和 A = C(ic)

当A是向量时;

A = [9 2 9 5];
K>> [C, ia, ic] = unique(A)    %ia相当于C对于A的索引值,ic相当于A对于C的索引值

C =

     2     5     9


ia =         

     2
     4
     1


ic =

     3
     1
     3
     2

当A是矩阵时;

 A=[1,3,4,5;1,2,4,5;2,1,3,4]

A =

     1     3     4     5
     1     2     4     5
     2     1     3     4

K>>  [C, ia, ic] = unique(A)  %同样地,ia相当于C对于A的索引值,ic相当于A对于C的索引值

C =

     1
     2
     3
     4
     5


ia =

     1
     3
     4
     7
    10


ic =

     1
     1
     2
     3
     2
     1
     4
     4
     3
     5
     5
     4
     2

3.[C,ia,ic] = unique(A,‘rows’)

将 A 中的每一行视为单个实体,并按排序顺序返回 A 中的唯一行。

A = randi(3,12,3)

A =

     2     2     2
     1     2     2
     2     3     2
     1     1     2
     1     1     1
     3     1     3
     2     3     1
     1     2     1
     1     2     1
     2     3     2
     3     2     2
     3     1     1

K>> C= unique(A) %返回矩阵中的唯一行

C =

     1
     2
     3

K>>  [C,ia,ic] = unique(A,'rows')

C =

     1     1     1
     1     1     2
     1     2     1
     1     2     2
     2     2     2
     2     3     1
     2     3     2
     3     1     1
     3     1     3
     3     2     2


ia =

     5
     4
     8
     2
     1
     7
     3
    12
     6
    11


ic =

     5
     4
     7
     2
     1
     9
     6
     3
     3
     7
    10
     8

4.[C,ia,ic] = unique(A(:,1:2),‘rows’)

基于前两列的数据查找 A 中的唯一行。指定三个输出以返回索引向量 ia 和 ic。

A = randi(3,12,3)

A =

     2     2     3
     1     2     1
     1     3     1
     2     3     1
     2     3     3
     1     3     2
     1     1     1
     1     1     2
     3     1     2
     1     3     2
     2     2     2
     1     2     3

K>> C= unique(A(:,1:2)) %前两列的数据查找 A 中的唯一行

C =

     1
     2
     3

K>> [C,ia,ic] = unique(A(:,1:2),'rows')

C =

     1     1
     1     2
     1     3
     2     2
     2     3
     3     1


ia =

     7
     2
     3
     1
     4
     9


ic =

     4
     2
     3
     5
     5
     3
     1
     1
     6
     3
     4
     2

  • 25
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值