Deleting 'NaN' rows out of a table

2 次查看(过去 30 天)
Hi everybody!
I got: A table (18316x4). Within the last two columns I got strings representing time (saved in cells). So sometimes instead of a date, here I can find a string called "NaN".
I'd like to: Remove those "NaN" rows I can find in my 3rd column, so later on I can transform my string-dates into real datetimes.
What I got so far: Only the idea of using the function "isnan" (though here I get the error message, that it is undefined for input arguments of type cell OR that I got too many input arguments)or the function "find" ... Which doesn't work either.
nan1=t(all(isnan(t.r(:,1)),3),:);
nan2=find(t.r{:,1});
My question: How can I easily remove the "NaN"-Strings out of my table, or better say, the whole row where I can find one?
I appreciate all help I get! Best regards.

采纳的回答

Walter Roberson
Walter Roberson 2018-7-13
编辑:Walter Roberson 2018-7-13
Convert to datetime first. The nan will become NaT. Then use https://www.mathworks.com/help/matlab/ref/rmmissing.html
  3 个评论
Paolo
Paolo 2018-7-13
If the data contains milliseconds like for your previous question, you forgot to include the sss specified in datetime.
Use:
date = datetime(t.r(:,1),'InputFormat','dd.MM.yyyy HH:mm:ss.SSS')
Peter Perkins
Peter Perkins 2018-8-3
It's likely that t.r(:,1) isn't what you expect it to be. What is it? Perhaps you can show t.r(1:5,1).

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by