Thanks again.  The table is attached.
Date/Time Processing and Formatting Issues
    조회 수: 20 (최근 30일)
  
       이전 댓글 표시
    
I'm very new to MATLAB and have been reading tutorials and posts on plotting data from an external file (csv) and am having trouble processing date/time data.  The CSV file has the date/time field as yyyy:ddd:hh:mm:ss.sssssssss (inculded sample below).
2022:246:10:00:02.593994140,4.44E+01
2022:246:10:00:03.592987060,-7.60E+01
2022:246:10:00:04.092987060,2.25E+02
I have tried several ways to plot the data but always run into an error when trying to convert the date/time string into date/time (I'm sure I'm missing a very basic/fundamental item), inculding different variations of u:DDD:HH:mm:ss.ms.
[data,txt,raw] = xlsread('test.csv');
x = txt{2:end,1};
y = raw(:,1) ;
dt = datetime(x,'InputFormat', 'u:DDD:HH:mm:ss.ms');
plot(dt,y)
Appreciate any help!
채택된 답변
  Star Strider
      
      
 2022년 10월 4일
        The 'yyyy' needs to be 'uuuu' (ISO year) to avoid problems with the conversion —  
C = {'2022:246:10:00:02.593994140',4.44E+01
     '2022:246:10:00:03.592987060',-7.60E+01
     '2022:246:10:00:04.092987060',2.25E+02};
T = cell2table(C)
T.C1 = datetime(C(:,1),'InputFormat','uuuu:DDD:HH:mm:ss.SSSSSSSS')
.
댓글 수: 4
  Star Strider
      
      
 2022년 10월 5일
				My pleasure!  
The xlsread function has been superceded by others and is now ‘Not recommended’ (and may be deprecated in future releases), so I have stopped using it in MATLAB Answers for compatibility reasons.  (Also, it doesn’t work with the online Run feature.)  I now use readtable or readmatrix instead.  
I was able to make my datetime code work after creating the appropriate vectors using compose.  Given the format of your file, I doubt if it would be possible to use detectImportOptions to get the same result.  
Anyway, my datetime code worked with it, so I learned something by figuring out how to create the appropriate character arrays to use with datetime in files with unusual formats.  
.
추가 답변 (1개)
  millercommamatt
      
 2022년 10월 4일
        dt = datetime(x,'InputFormat', 'yyyy:DDD:HH:MM:ss.SSSSSSSSS');
댓글 수: 3
  millercommamatt
      
 2022년 10월 4일
				That's what I get for not testing this before posting. This has the correct minute part of the format string
dt = datetime(x,'InputFormat', 'yyyy:DDD:HH:mm:ss.SSSSSSSSS');
참고 항목
카테고리
				Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



