필터 지우기
필터 지우기

Deleting 'NaN' rows out of a table

조회 수: 2 (최근 30일)
jrbbrt
jrbbrt 2018년 7월 13일
댓글: Peter Perkins 2018년 8월 3일
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