Matlab Ismember,多次

Matlab Ismember,多次,matlab,Matlab,我有一系列的信 mystring = 'abcdefghijklmnopqrstuvwxyz'; 我有大象这个词。我想知道这些字母在大象身上出现了多少次。我试过ismember,它会告诉我它们是否出现,但不会告诉我出现了多少次。如何获取字母在单词中出现的次数 mystring = char(['A':'Z','a':'z']); Alphabet = zeros(numel(mystring),1); for ii = 1:numel(mystring) Alphabet(ii,1)

我有一系列的信

mystring = 'abcdefghijklmnopqrstuvwxyz';
我有大象这个词。我想知道这些字母在大象身上出现了多少次。我试过ismember,它会告诉我它们是否出现,但不会告诉我出现了多少次。如何获取字母在单词中出现的次数

mystring = char(['A':'Z','a':'z']);
Alphabet = zeros(numel(mystring),1);
for ii = 1:numel(mystring)
    Alphabet(ii,1) = sum(ismember('Elephant',mystring(ii)));
end
ismember检查循环指定的字母表的当前字母是否存在于单词中。如果是,则将所有出现次数相加,以获得存储在字母表中的每个字母的总出现次数,其中每个条目对应于字母表中该位置的字母

我使用了按照创建字母表的方法;资本现在起作用了

例如,威廉·莎士比亚的测试:

您可以使用:

返回:

N =

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     2     1     1     1     1     1     1

请注意,由于转换为ASCII,此方法区分大小写。如果需要,您可以使用或进行调整。

您的预期输出是什么?将要写入相同的内容,只是第一行不同:alphabet=char['a':'Z','a':'Z']@丹尼尔,那也行。我的目标是更一般的东西。
mystring = 'bcdfgijkmoqrsuvwxyzelphant';
myword = 'elephant';

[sortstring, idx] = sort(mystring); % Bin edges for histcounts need to be increasing

N = histcounts(double(myword), [double(sortstring) 257]); % Add 257 to the array so we capture the last character in a bin
N(idx) = N; % Undo the sort
N =

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     2     1     1     1     1     1     1