delete the whole row ?

hi guys
I have a matrix.
here the first column is date and others columns are data. for eg.
I have data like this.
05/04/2018 15 54 87
06/04/2018 48 NaN 8
07/04/2018 NaN NaN NaN
08/04/2018 NaN 8 NaN
09/04/2018 NaN NaN NaN
what i want is
05/04/2018 15 54 87
06/04/2018 48 NaN 8
08/04/2018 NaN 8 NaN
hope you understand. !!! thanks in advance.

 Accepted Answer

mask = all(isnan(YourArray),2);
YourArray(mask, :) = [];

5 Comments

pruth
pruth on 21 May 2018
hi thanks for the reply but it will not delete any row since the first column is for date and time. I want to delete date and time also.
You said you want to delete only those rows which have all NaN values in it. Any row that has a non-NaN time and date does not have all NaN values in it.
You probably want
mask = all(isnan(YourArray(:,2:end),2);
YourArray(mask, :) = [];
I apologize if it confuses you. let me clarify. I have data like this.
05/04/2018 15 54 87
06/04/2018 48 NaN 8
07/04/2018 NaN NaN NaN
08/04/2018 NaN 8 NaN
09/04/2018 NaN NaN NaN
what i want is
05/04/2018 15 54 87
06/04/2018 48 NaN 8
08/04/2018 NaN 8 NaN
hope you understand. !!! thanks
@Walter's code given in comment should work. Although there is a little typo about the mismatch of parenthesis.
mask = all(isnan(YourArray(:,2:end)),2);
YourArray(mask, :) = [];
pruth
pruth on 21 May 2018
yes, it works. I corrected that already. thank you :)

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

on 21 May 2018

Edited:

on 21 May 2018

Community Treasure Hunt

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

Start Hunting!