수정 : 2023-06-05
목표
timetable 활용하여 데이터 월평균 처리
과정
1. 데이터 불러오기 (바다누리 해양정보 서비스 : 1시간 간격 조위 데이터)
- + 전처리
data = importdata("01_data\강화대교_2022년_1시간 조위.txt",' ',5);
tp.time={};
for ii = 1:length(data.textdata)
if length(data.textdata{ii,:}) == 16
tp.time(end+1,1) = data.textdata(ii,:);
end
end
|
2. struct형태로 변수 저장
- timetabel 변환을 위해 시간데이터는 datetime 형식으로 저장
d1.time = datetime(tp.time,'Format','yyyy/MM/dd HH:mm');
d1.level = data2.data(1:length(d1.time));
|
3. struct → table → timetable 변환
- struct → timetable 직통으로 변환 불가능
T1 = struct2table(d1);
T2 = table2timetable(T1);
|
4. 리샘플링
- 빈 결측구간 nan으로 채우기
- 원하는 시간 간격, 원하는 데이터 처리 방식 입력
ex) yearly, monthly, hourly
ex) linear, mean, max
T3 = retime(T2,'regular','fillwithmissing','TimeStep',hours(1));
T4 = retime(T3,"monthly","mean");
|
5. timetable → table → struct 변환
T5 = timetable2table(T4);
d2 = table2struct(T4,'ToScalar',true);
|
결과
Reference
https://kr.mathworks.com/help/matlab/ref/timetable.retime.html
'matlab' 카테고리의 다른 글
문자열로 명령어 조합 (0) | 2022.08.02 |
---|---|
cell형 배열로 이루어진 숫자형 텍스트 double형식 변환 (0) | 2022.08.02 |
M_map 고해상도 지도 작성을 위한 GSHHS 다운로드 방법 (0) | 2022.08.01 |
남극해 지형 figure 생성 (0) | 2022.08.01 |
여러 데이터 이름을 텍스트 형식으로 리스트화 (0) | 2022.08.01 |