ismember
機能を試してみてください:
>> help ismember
ismember True for set member.
ismember(A,S) for the array A returns an array of the same size as A
containing 1 where the elements of A are in the set S and 0 otherwise.
A and S can be cell arrays of strings.
ismember
フォームをあなたのtest
論理アレイとしてのベクトル、お尻
>> ismember(a, 'a')
ans =
1 0 0 1 1 1 0
あなたは、あなたのベクトルv
から対応するエントリを抽出するために論理インデックスとしてこれを使用することができます。文字は「」あなたのベクトルで見つかった、と0それがない場合にされて1 igning:
>> mean(v(ismember(a, 'a')))
ans =
4
:
>> v(ismember(a, 'a'))
ans =
1 4 5 6
最後に、あなたはこのベクトルの平均値を取ることができますだから、コードのあなたの最後の行がそうのようになります。
>> a == 'a'
ans =
1 0 0 1 1 1 0
:
EDIT 私はあなたのケースでは、あなたが実際に比較演算子を使用して、はるかに簡単な方法であなたの論理配列を形成することができることを実現しています。
>> mean(v(a == 'a'))
ans =
4
ismember
あなたがいた「」または「B」の位置を検索する場合、たとえば、複数の文字の存在をテストしたい場合に有用です。
+1非常によく説明されています。 –
vとaが行列の場合はどうしますか?試してみました:k = 1:TotalnoOfGrids j = 1の場合:noOfNodes M = mean(Allvalues {k}(j))== char(mostCommonLetters {k})))); Ms {k} = MyPerfectAverage;何か問題でも。@Bill Chaeatham – pac
vとaが等しいサイズの行列の場合、上記のコードはすべて動作しますが、最初にベクトル化する必要があります。つまり 'mean(v(a(:) == 'a'))' –