文字列の複数のセル配列(> = 2)で共通要素を探したいと思います。文字列セルの共通要素を見つける方法は?
関連する質問はhereであり、答えはintersect()
という機能を使用することを提案していますが、2つの入力に対してのみ機能します。
私の場合、2つ以上のセルがあり、共通のサブセットを1つだけ取得したいと考えています。ここで私が達成したいものの例です:のみこれらの2つの文字列がすべての入力で発生するので、最終的には
c1 = {'a','b','c','d'}
c2 = {'b','c','d'}
c3 = {'c','d'}
c_common = my_fun({c1,c2,c3});
、私は、c_common={'c','d'}
をしたいです。
どうすればMATLABでこれを行うことができますか?事前に
おかげで、
P.S.私はまた、各入力のインデックスが必要ですが、私はおそらく出力c_common
を使用してそれを行うことができますので、答えに必要はありません。この場合の
[c_common, indices] = my_fun({c1,c2,c3});
どこindices = {[3,4], [2,3], [1,2]}
:誰もが、あまりにもそれに取り組むしたい場合でも、私の実際の出力は次のようになります。この記事に記載されている
おかげで、
File Exchangeでこれを行うためのコードがhttp://www.mathworks.com/matlabcentral/fileexchange/6144-mintersect-multiple-set-intersectionにあるように見えます。 – edwinksl
これは、一対のセルの簡単なシーケンシャルな交差点のように見えますが、著者が指摘しているように、これは特に効率的ではありません。 – edwinksl
@edwinkslありがとう!これはトリックを行い、私の場合効率は非常に大きな懸念ではありません。あなたがこれを回答として投稿したいのであれば、私は受け入れます。もう一度ありがとう:) – jeff