How can I delete the rows if they have a NaN value?

1 visualización (últimos 30 días)
Emre Eryigit
Emre Eryigit el 15 de Abr. de 2021
Comentada: Khalid Mahmood el 15 de Abr. de 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,

Respuesta aceptada

Matt J
Matt J el 15 de Abr. de 2021
keep=~isnan(x);
x=x(keep);
y=y(keep);
  4 comentarios
Emre Eryigit
Emre Eryigit el 15 de Abr. de 2021
Okay now it's solved thanks a lot! :)
Matt J
Matt J el 15 de Abr. de 2021
You're welcome, but please Accept-click the answer to indicate that it addressed your question.

Iniciar sesión para comentar.

Más respuestas (1)

Khalid Mahmood
Khalid Mahmood el 15 de Abr. de 2021
Editada: Khalid Mahmood el 15 de Abr. de 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 comentario
Khalid Mahmood
Khalid Mahmood el 15 de Abr. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by