【问题标题】:Deleting non-unique rows from an array从数组中删除非唯一行
【发布时间】:2018-07-16 16:04:35
【问题描述】:

我有一个数组a,如下:

a = [ 1 2; 3 4; 1 2 ];

我想删除在a 中多次出现的所有行并得到c

c = [ 3 4 ];

请注意,这与保留唯一行的操作不同,因为我根本不希望出现重复的行。我怎样才能做到这一点?

【问题讨论】:

标签: matlab matrix duplicates unique rows


【解决方案1】:

unique 的第三个输出为您提供原始数组中唯一行的索引。您可以将其与accumarray 一起使用来计算出现次数,可用于选择仅出现一次的行。

例如:

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

[uniquerow, ~, rowidx] = unique(A, 'rows'); 
noccurrences = accumarray(rowidx, 1);

C = uniquerow(noccurrences==1, :);

返回:

>> C

C =

     3     4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 2020-08-08
    • 2022-08-14
    相关资源
    最近更新 更多