2017-12-16 8 views
0

엑셀 파일에서 데이터를 가져 왔습니다. 내가 datestr(Time)을 사용Matlab : 가져온 형식을 읽을 수있는 형식으로 변환 하시겠습니까?

0.641238425925926 
0.641932870370370 
0.642627314814815 
0.643321759259259 
0.644016203703704 

: 같은 는 날짜 날짜를 가져온 후, 내 날짜 보인다. 필자는 필요한 형식으로 날짜 데이터를 가져오고 있지만 데이터는 표 형식이 아닙니다. 데이터를 플롯해야합니다. 그래서 모든 것을 표 형식으로 가져야합니다.

datevec 그러나 시간, 분을 별도로 제공합니다. 모든 것을 결합하는 방법을 모릅니다.

해결 방법이 있습니까?

답변

0

숫자가 전체 날짜 (및 "전체 날짜"로 표시되는 경우 날짜와 시간을 모두 포함하는 임시 포인트를 의미 함)가 예상되는 경우 Excel 스프레드 시트를 읽을 때 문제가있을 수 있습니다. 그러나 당신이 단지 몇 시간에 대해서 말하기 때문에, 나는 당신이 올바른 길을 가고 있으며 시간 만 고려하고 싶다고 생각합니다.

time = [ 
    0.641238425925926 
    0.641932870370370 
    0.642627314814815 
    0.643321759259259 
    0.644016203703704 
]; 

time_str = cellstr(datestr(data,'HH:mm:ss')); 

위의 코드는 문자 벡터로 구성된 5x1 셀 배열을 생성합니다.이 배열은 플로팅에 적합하지 않습니다. 당신이 말했듯이, datevec은 datetime 값을 나눌 것이며, 좋지 않습니다. 값을 현재 숫자 형식으로 유지하고 x-axis 점을 정의하기 위해 값을 사용하는 것이 좋습니다. 줄거리가 그려되면, 당신은 항상 더 읽을 수있는 형식으로 눈금 레이블을 변환 할 수 있습니다

time = [ 
    0.641238425925926 
    0.641932870370370 
    0.642627314814815 
    0.643321759259259 
    0.644016203703704 
]; 

value = [ 
    1 
    3 
    4 
    0 
    2 
]; 

plot(time,value); 
datetick('x','HH:mm:ss'); 

당신이 볼 수 있듯이,이 때문에 반올림의 초 정밀도를 잃는다. 따라서 최대한의 정밀도를 유지하기 위해 :

% ... 

plot(time,value); 
set(gca,'XTickLabel',cellstr(datestr(data,'HH:mm:ss')));