removing elements of a cell array

1 次查看(过去 30 天)
say we have a cell array
dictionary= 'abbreviately' 'abbreviation' 'abbreviator' 'abbreviatory' 'abbreviature' 'abby' 'abcoulomb' 'abdal'
I have written a code which returns x = 0 0 0 0 1 0 0
word='saddest'
newguess='e'
x=newguess==word
How do I delete the words from dictionary that are not equivalent for my x value and newguess letter 'e'. So x has a true value on the 5th position (after the 4 false values), which would mean I would like to delete all the words from dictionary if their 5th position letter does not equal 'e'. Thank you

采纳的回答

Walter Roberson
Walter Roberson 2015-11-8
newdictionary = C( cellfun(@(C) length(C) >= 5 & C(5)==newguess, dictionary, 'Uniform', 0) );
  5 个评论
Walter Roberson
Walter Roberson 2015-11-8
The code I gave assumed a cell array of strings, so it should be fine with that definition of your dictionary.
James Connor
James Connor 2015-11-8
Oh, I don't know if it's me doing something wrong but I keep getting this.
Index exceeds matrix dimensions.
Error in @(C)length(C)==length(x)&all(C(x)==newguess)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by