comparing table values using isequal
    조회 수: 39 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Cris LaPierre
    
      
 2020년 9월 15일
        
      편집: Cris LaPierre
    
      
 2020년 9월 15일
  
      This can be done much simpler. Try something like this.
A = M(M{:,2}=="f",:);
댓글 수: 2
  Cris LaPierre
    
      
 2020년 9월 15일
				This can be made even simpler by using the variable name:
A = M(M.Var2=="f",:);
추가 답변 (2개)
  BOB MATHEW SYJI
      
 2020년 9월 15일
        Instead of 
TF = isequal ("M(i,2)",'f')
try,
TF = strcmp (M.2nd_variable,'f')
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!