How can I delete the rows if they have a NaN value?
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Emre Eryigit
 il 15 Apr 2021
  
    
    
    
    
    Commentato: Khalid Mahmood
      
 il 15 Apr 2021
            Hello all,
My problem is kinda cheezy but I still can't solve the problem so here it is;
So my codes I wrote so far are;
load carsmall
x=[MPG]
y=[Weight]
and I'd likte to delete the rows which contains NaN in my x value. Long story in short I'd like to delete the rows 11,12,13,14,15 and 18 since they have NaN values.
Any helps are appreciated,
Regards,
0 Commenti
Risposta accettata
Più risposte (1)
  Khalid Mahmood
      
 il 15 Apr 2021
        
      Modificato: Khalid Mahmood
      
 il 15 Apr 2021
  
      Let Matrix A has NaN values, we want a matrix B which contains all rows of A except which have NaN values
function testNaNRemoval()
A = [  1   5   8 ;   -3 NaN  14;0   6 NaN ; 1   5   18];
B=remove_nan_rows(A)
end
function B = remove_nan_rows(A)
  B=[];ib=1;
  for i=1:size(A,1)
      if any(isnan(A(i,:))), continue;end
      B(ib,:)=A(i,:); ib=ib+1;
  end
end
1 Commento
  Khalid Mahmood
      
 il 15 Apr 2021
				This is a bit lengthy answer, but keep=~isnan(A); B=A(keep) also works.
Advantage of longer method is when we want mixed behaviour or our tailored processing 
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!