-1

したがって、これに対する私のコードは次のとおりです。

my5Sentences={'Windows machines are better than Macs.','The Intel core i7 4770k is a great processor.','My email is rjoshi8@drexel.edu','I go to Drexel','I am writing this in MATLAB & and I am writing this code for Engr-180'};
for i=1:length(my5Sentences)
 fprintf('The total number of characters in this sentence is %i\n',length(my5Sentences{i}))
end

コードのこの部分は、各文に含まれる文字数を表示しますが、ここで、各文に含まれる特殊文字の数を調べる必要があります。このコードがどのようになるかはわかりません。ところで、最初の質問を手伝ってくれた PearsonArtPhoto に感謝します。

4

2 に答える 2

1

次を使用して簡単に行うことができますregexp

>> cellfun(@(str) numel(regexp(str, '\W')), my5Sentences)

ans =

     6     9     5     3    16

「特殊文字」とは、文字や数字以外のものを意味すると思います。'\W'それ以外の場合は、必要なものに変更してください。たとえば、スペースとピリオドが特殊文字としてカウントされない場合は、

cellfun(@(str) numel(regexp(str, '[^a-z_A-Z0-9\s.]')), my5Sentences)
于 2013-11-09T13:23:56.253 に答える
1

正規表現を試してください:

[f]=regexp(my5Sentences{i},'([^a-zA-Z_0-9\s])','tokens')

インデックスが必要な場合は f の他の出力を確認し、いくつかの文字が間違って扱われている場合は regexp のドキュメントを確認してください。

于 2013-11-09T13:21:57.287 に答える