如何计算MATLAB中唯一行的出现次数?

man*_*oos 1 arrays matlab matrix

我有一个像下面的矩阵,

A =

     1     2     3
     4     5     6
     7     8     9
    10    11    12
     4     5     6
     7     8     9
     4     5     6
     1     2     3
Run Code Online (Sandbox Code Playgroud)

我可以使用命令A_unique = unique(A,'rows')和结果在此矩阵中提取唯一的行,如下所示

A_unique =

     1     2     3
     4     5     6
     7     8     9
    10    11    12
Run Code Online (Sandbox Code Playgroud)

我需要找到主矩阵中每行存在的次数.A 有些事情如下

A_unique_count =

     2
     3
     2
     1
Run Code Online (Sandbox Code Playgroud)

如何找到唯一行的数量?有人可以帮忙吗?提前致谢

马努

exc*_*aza 5

第三个输出unique为您提供原始数组中唯一行的索引.您可以使用它accumarray来计算出现次数.

例如:

A = [1     2     3
     4     5     6
     7     8     9
    10    11    12
     4     5     6
     7     8     9
     4     5     6
     1     2     3];

[uniquerow, ~, rowidx] = unique(A, 'rows'); 
noccurrences = accumarray(rowidx, 1)
Run Code Online (Sandbox Code Playgroud)

返回:

noccurrences =

     2
     3
     2
     1
Run Code Online (Sandbox Code Playgroud)

正如所料