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
ベクトル内で文字「a」が見つかった場合は1を割り当て、そうでない場合は0を割り当てます。
>> ismember(a, 'a')
ans =
1 0 0 1 1 1 0
次に、これを論理インデックスとして使用して、ベクトルから対応するエントリを抽出できv
ます。
>> v(ismember(a, 'a'))
ans =
1 4 5 6
最後に、このベクトルの平均を取ることができます:
>> mean(v(ismember(a, 'a')))
ans =
4
編集
私はあなたの場合、比較演算子を使用して、はるかに簡単な方法で実際に論理配列を形成できることに気づきました。
>> a == 'a'
ans =
1 0 0 1 1 1 0
したがって、コードの最終行は次のようになります。
>> mean(v(a == 'a'))
ans =
4
ismember
複数の文字の存在をテストする場合、たとえば、「a」または「b」があった場所を検索する場合に便利です。