how do I compare columns in a string matrix
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
I have a given string matrix and I need to check if the word can be read the same from the opposite direction (that it is to say if it is a Palindromes like -live not on evil)
    % 
  wordList = ['civic';'dream';'kayak';'level';...
    'lower';'peace';'radar';'refer';'table';'stats']
if the word is read the same from both direction I have to put 1 in the vector palRes(10,1) if not - I have to put 0 in it...
what I have done:
    % 
  wordList = ['civic';'dream';'kayak';'level';...
    'lower';'peace';'radar';'refer';'table';'stats']
wordList1 = fliplr(wordList)
palRes=zeros(10,1)
for ii= 1:size(wordList,1)
    for jj = 1:size(wordList,2)
    if wordList(ii)== wordList1(ii)
       palRes(ii,jj) = 1
    end
    end
end
but the problem is that the final palRes that I get is a(10,5)matrix instead of (10,1) vec I want to fix this problem inside the loop and not after it! any ideas? thanks!
0 个评论
采纳的回答
  Roger Stafford
      
      
 2013-11-23
        Instead of that inner for-loop with the index jj, use the 'all' function:
 palRes(ii) = all(wordList(ii)==fliplr(wordList(ii));
3 个评论
  Roger Stafford
      
      
 2013-11-23
				You can read about it in detail at:
 http://www.mathworks.com/help/matlab/ref/all.html
In your case it is true if each logical element in its vector argument is true.
I have assumed here that wordList(ii) is a vector of string characters. Perhaps it should be written as wordList(ii,:).
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
			
	产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!