2012-05-06 6 views
1

私はセルの行列を持っています。行列の次元はn^3です。行列のセルに格納されている未知の大きさの配列の交差をどうやって行うのですか?

各セルにはインデックスの配列が含まれています(いくつかの文字列のregexpクエリの結果であり、重要ではありません)。

私は、私はそれをどのように行うことができますM.

の各セルに配列内のインデックスを交差したいですか?交差関数を使用すると、各セルの配列の内側からインデックスを取得する方法はどのようにわかりますか?

私が理解しているように、内側の配列のサイズが不明であるため、セルを使用する必要があります。

答えて

2

これはあなたのやりたいことですか?

A = M{1}; 
for i = 2:numel(M) 
    A = intersect(A, M{i}); 
end 

私は、単一のintersect呼び出しを使用してこれを行うにはきちんとした方法があると思う、または例えばとしません。 cellfun

あなただけの特定のインデックスの交差点をしたい場合は、あなたが行うことができます:

A = indices(1); 
for i = indices(2:end) 
    A = intersect(A, M{i}); 
end 
+0

私はあなたがそのような中括弧( 'M {インデックスを}')使用することができませんでした。それが私の必要なものです。ありがとう。 あなたのコードの改善は 'result = intersect(A {required_cells})'でしょう。 'required_cells'は、1から、私の行列の要素の量までの配列です。 – Uri

+0

required_cellsに2つ以上の要素がある場合、 'intersect(A {required_cells}) 'は動作しません。私はそのような関数を呼び出すことは、入力引数としてAのセルを分配するだけで、 'intersect'は2つの配列引数を取ることになります。私が 'intersect(A {[1 2 3 4]}) 'のようなものを試してみると、" Too many input argument "エラーが出ました。 – Richante

+0

はい、あなたは正しいです。 – Uri

関連する問題