2014-10-17 3 views
3

17 : 01 : 11,356078과 같은 날짜가 많은 스프레드 시트가 있습니다. datenum은 마이크로 초를 처리 할 수있는 정밀도가 없다는 것을 알고 있습니다. 또한 datevec는 날짜가 3.5608e + 5 (밀리 초)가되는 것을 고려하면 좋지 않습니다. 델타 시간을 계산해야하기 때문에 마이크로 초의 정밀도가 필요합니다.MATLAB의 마이크로 초 단위 날짜

답변

1

matlab의 기존 날짜 형식은 마이크로 초보다 작은 것을 허용하지 않습니다. 따라서 해결 방법은 이러한 형식을 피하는 것입니다.

비교적 간단한 방법은 숫자를 분리하는 것입니다. 예를 들어, 날짜가 두 번째로 반올림 된 벡터 1 개와 그 초의 소수를 갖는 다른 벡터가 있습니다. 이렇게하면 필요한 경우 매우 높은 정밀도를 얻을 수 있습니다.

차이를 계산하려면 나머지 시간의 차이를 초 단위로 차이를 더하십시오. (상수를 사용하여 차이를 스케일링)

1

내 생각에 가장 깨끗한 해결책은 수동으로 입력 문자열을 마이크로 초로 변환하고 타임 스탬프 벡터를 만드는 기능입니다.

불행히도 Matlab의 날짜/시간 구조는 밀리 초보다 낮지 않습니다.

4

최신 릴리스 R2014b를 사용할 수있는 기회가 있으면 나노초 정밀도를 처리하는 새로운 datetime 개체를 포함하여 날짜 및 시간 처리 정밀 검사가 포함됩니다.

그 이전에, 당신은 당신이 밀리 초 정밀도 이상을 필요로하는 경우 조금 붙어하고, 저장하고 조작하여 시간보다는에 의존하는 자신 만의 방법을 구현해야 할 수도있어 내장 datenumdatestr

0

datenum의 문제는 두 배의 정밀도로 제한된다는 것입니다. 당신은 날짜 문자열을 먹이로 하루 오프셋을 제거하면 0-jan-0000-hrs:mins:secs datenum 꽤 femptoseconds를 해결할 수 있습니다. 이것은 날짜에 관심이없는 경우에만 유용하지만 두 번 변환하면 문제가 될 수 있습니다.

관련 문제