我有一个矩阵,其中有一列如下:
NNN
NNN
NNN
AAA
AAA
CCC
CCC
DDD
DDD
DDD
我想删除所有没有重复3次的行。这将导致删除第4,5,6,7行(结果将只是具有剩余的矩阵:
NNN
NNN
NNN
DDD
DDD
DDD
(PS:那些是字符串,而不是数字)。
使用matlab有没有一种智能的方法呢?我的意思是,使用功能等?因为我用for解决了这个问题,但我认为这不是最好的方法,它必须有另一种方式。
提前感谢您的帮助! :)
答案 0 :(得分:1)
这应该这样做:
t=tabulate(x) % count how much each element appears
valid=t(cell2mat(t(:,2))>=3,1) % find strings that appear at least 3 times
result=x(ismember(x,valid)) % select only these strings
我在这里假设x是具有一列字符串的单元矩阵。如果x有其他列,则很容易解决。