comparing table values using isequal
    35 views (last 30 days)
  
       Show older comments
    
    Jakub Steiner
 on 15 Sep 2020
  
    
    
    
    
    Commented: Cris LaPierre
    
      
 on 15 Sep 2020
            Hi, 
I have a table M. The second column contains either the letter 's' or letter 'f'. 
I would like to put all the rows with the letter 'f' in the second column into a new table A with the following code
pocet_radku = height(M);
j=1;
for i=1:pocet_radku
    TF = isequal ("M(i,2)",'f')
    if TF == 1
       A(j,:)= M(i,:);
       j = j+1;
    else
    end
end
Unfortunatelly, the isequal function return only zeros. Any idea why? In there syntax error that I'm not aware of?
Testing in a command window:
>> isequal ("M(180,2)",'f')
ans =
  logical
   0
>> M(180,2)
ans =
  table
    Var2 
    _____
    {'f'}
 Thanks a lot for any answers
0 Comments
Accepted Answer
  Cris LaPierre
    
      
 on 15 Sep 2020
        
      Edited: Cris LaPierre
    
      
 on 15 Sep 2020
  
      This can be done much simpler. Try something like this.
A = M(M{:,2}=="f",:);
2 Comments
  Cris LaPierre
    
      
 on 15 Sep 2020
				This can be made even simpler by using the variable name:
A = M(M.Var2=="f",:);
More Answers (2)
  BOB MATHEW SYJI
      
 on 15 Sep 2020
        Instead of 
TF = isequal ("M(i,2)",'f')
try,
TF = strcmp (M.2nd_variable,'f')
0 Comments
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


