0

次のような1列のマトリックスがあります。

NNN

NNN

NNN

AAA

AAA

CCC

CCC

DDD

DDD

DDD

3回の繰り返しがない行をすべて削除したいと思います。これにより、行 4、5、6、7 が削除されます (結果は、残りの行列のみになります。

NNN

NNN

NNN

DDD

DDD

DDD

(PS: これらは文字列であり、数値ではありません)。

matlabを使用してそれを行うインテリジェントな方法はありますか? つまり、関数などを使用していますか?私は for で問題を解決しましたが、それは最善の方法ではなく、別の方法が必要だと思います。

事前に助けてくれてありがとう!:)

4

1 に答える 1

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 は 1 列の文字列を含むセル マトリックスであると仮定します。x に他の列がある場合は、簡単に修正できます。

于 2012-10-26T04:36:05.113 に答える