How to ignore lines in file via rmmissing?

6 views (last 30 days)
Ivan Mich
Ivan Mich on 8 Jun 2021
Answered: Walter Roberson on 9 Jun 2021
Hello
I have a question about a code. I have an xlsx file that icludes three columns. The 3rd column has numbers and some NAN values. I use rmmissing command in order to igner them But I see that the other two columns are not be ignored from my code too. I would like to ignore the lines in which the 3rd column includes NaN values
How could I make it?
My code is
filename1= 'TEST.xlsx' %arxeio me makroseismika
[d1,tex]= importdata(filename1);
A=d1(:,1);
B=d1(:,2);
C=d1(:,7);
C=rmmissing(C)

Answers (2)

dpb
dpb on 8 Jun 2021
Edited: dpb on 8 Jun 2021
Don't create sequentially-named variables, use the array MATLAB so conveniently provided you...
filename1= 'TEST.xlsx' %arxeio me makroseismika
[data,tex]= importdata(filename1);
ix=ismissing(data(:,7)); % find those want to eliminate
data=data(~ix,:); % keep those that aren't missing
tex=tex(~ix,:);
If you do have disparate data types in the file, I strongly suggest to use readtable instead....it handles such in one object instead of having to have two.
  2 Comments
dpb
dpb on 8 Jun 2021
I'm afraid that without any other data to use, it follows precisely the code variables you have in your code snippet...if you expect exact solutions, must supply enough information that is a possible task...
That's the problem with importdata bringing in two disparate variables -- they're not necessarily the same size as apparently is the case here. Nothing can do about that without the information.
As said, use readtable instead.

Sign in to comment.


Walter Roberson
Walter Roberson on 9 Jun 2021
A = d1(:,1);
B = d1(:,2);
C = d1(:,7);
mask = ismissing(C);
A(mask) = [];
B(mask) = [];
C(mask) = [];

Community Treasure Hunt

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

Start Hunting!

Translated by