尝试使用该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”所在的位置。