editing a cell in a loop
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
If I have a 1 column cell
x=
'dog'
'at'
'cat'
'four'
'creative'
How do I write code that removes the words based on their length of letters. Like say I input n=1 it removes all words with letter 1 then n=2 it would remove all words with letter 2 so it would remove 'at' then n=3 removes all words with letter 3 so removes 'cat' and 'dog' leaving
x=
'four'
'creative'
Thanks
0 件のコメント
採用された回答
  Geoff Hayes
      
      
 2015 年 11 月 8 日
        Max - use cellfun to apply a function to each element in your array. In your case, you could use the length function to determine the lengths of each string or to determine which strings are a certain number of characters long. For example, using your x from above
 n    = 2;
 idcs = cellfun(@length(str)==2,x);
will return
 idcs =
     0
     1
     0
     0
     0
which tells us that the second string in x is of length two. We can then remove that string easily enough by doing
 x(idcs) = [];
The above call to cellfun takes an anonymous function as its first input parameter
 @(str)length(str)==2
where str is a string element from our cell array x. We calculate the length of str and compare it to two, so that the output from this call is logical (true or false).
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Cell Arrays についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

