MATLAB Answers

Finding which rows in table contain NaN, save those as new table

3 views (last 30 days)
new2matlab
new2matlab on 6 Feb 2020
Edited: Adam Danz on 7 Feb 2020
Im looking to find a way to figure our which rows contain a 'NaN' in column 5, and then save all of those that do as a new table

  0 Comments

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 6 Feb 2020
Assuming your input is a table:
nantable = yourtable(isnan(yourtable{:, 5}), :) %keep all rows whose 5th column is nan

  0 Comments

Sign in to comment.

More Answers (1)

Adam Danz
Adam Danz on 6 Feb 2020
Edited: Adam Danz on 7 Feb 2020
If the tables all contain the same variable names (headers), use the variable names to index columns rather than column number. This is one of the strengths of tables over matrices and cell arrays. If the variable names are different, then you'll have to use numeric indexing.
Suppose column 5 is named "MyData" and the table is named "T".
nanIdx = isnan(T.MyData);
% If you must use numeric indexing,
% nanIdx = isnan(T{:,5});
Create the new table
Tnew = T(nanIdx,:);

  0 Comments

Sign in to comment.

Sign in to answer this question.