Count number of words per row in a string
    10 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Say I have the following text:
str = [
    "an example of a short sentence" 
    "a second short sentence"]
I would like to count the total number of words per row. 
In this case, I want matlab to tell me:  6, 4
I have tried the "count" command, but it is only meant to find specific words. 
Thanks for your help!
0 件のコメント
採用された回答
  Image Analyst
      
      
 2022 年 4 月 21 日
        Try this:
str = [...
    "an example of a short sentence" ;
    "a second short sentence"]
counts = zeros(size(str));
for row = 1 : length(str)
    counts(row) = length(strsplit(str(row)));
end
0 件のコメント
その他の回答 (2 件)
  Voss
      
      
 2022 年 4 月 21 日
        I won't claim that this is the best way to do it, or that it'll work for anything you want to consider a "word" in your string array, but here's something:
str = [
    "an example of a short sentence" 
    "a second short sentence"];
arrayfun(@(x)numel(strsplit(x)),str)
0 件のコメント
  Les Beckham
      
 2022 年 4 月 21 日
        
      編集済み: Les Beckham
      
 2022 年 4 月 21 日
  
      In 2020b or later you can also use a pattern with a regex pattern to find (and count) words.  It took some experimenting to get this right but it works.
str = [
"an example of a short sentence"
"a second short sentence"];
count(str, regexpPattern('\w*'))
If you don't want to allow underscores and numbers in your "words", use this. This allows one optional capital letter only at the beginning of the words.
count(str, regexpPattern('[A-Z]?[a-z]*'))
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Characters and Strings についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



