자료에서 특정 성분만 추출하여 그래프를 그리고 싶습니다.
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
1월부터 11월까지의 조위 자료가 담긴 파일이 11개가 있습니다. 현재 코드에서는 모든 파일을 하나로 합쳐 조화분석하였는데, 저는 월별로 조화분석을 하여 월별 분조의 진폭 변화를 plot 하고 싶습니다. 하지만 M2, S2, K1, O1 분조만 추출하여 plot 하는 방법과 월별로 plot 하는 방법이 감이 잘 잡히지 않습니다. 이 두가지 방법에 대해서 도움을 주시면 감사할 것 같습니다.
clc; clear all;
% 필요한 파라미터 설정
latitude = 34.7797222222222;
time_interval = 1/60;
% 조위 데이터와 시간 데이터를 담을 변수 초기화
combined_amplitude = [];
combined_time = [];
for month = 1:11
% 파일 읽기
filename = sprintf("%d.txt", month);
f = readtable(filename, 'Delimiter', '\t', 'VariableNamingRule', 'preserve');
% 조위 데이터와 시간 데이터 추출
amplitude = f{:, 2};
time = datetime(f{:, 1}, 'InputFormat', 'yyyy/MM/dd HH:mm:ss');
time = datenum(time);
% 데이터 합치기
combined_amplitude = [combined_amplitude; amplitude];
combined_time = [combined_time; time];
end
% 시작 시간 설정
start_time = combined_time(1);
% t_tide 함수 호출
[NAME, FREQ, TIDECON, ~] = t_tide(combined_amplitude, 'interval', time_interval, 'start time', start_time, 'latitude', latitude);
코드는 여기까지 작성하였으며 자료는 아래와 같이 출력됩니다. *Q1 아래로도 여러 분조들이 있습니다.
tide freq amp amp_err pha pha_err snr
SSA 0.0002282 1.7574 3.367 357.82 153.18 0.27
MSM 0.0013098 1.4068 3.492 157.39 164.77 0.16
MM 0.0015122 0.2377 2.915 42.53 219.09 0.0066
MSF 0.0028219 1.9428 3.460 74.66 130.33 0.32
MF 0.0030501 0.8132 3.360 131.62 174.29 0.059
ALP1 0.0343966 0.3861 1.115 335.87 164.88 0.12
2Q1 0.0357064 0.9802 1.606 247.44 104.05 0.37
SIG1 0.0359087 0.2855 1.068 307.22 229.19 0.071
*Q1 0.0372185 3.5933 1.573 161.17 28.45 5.2
0 Kommentare
Antworten (1)
Angelo Yeo
am 7 Nov. 2024 um 0:35
현재 코드에서는 1.txt부터 11.txt까지의 데이터들을 통합한 combined_amplitude, combined_time 변수를 만들고 있습니다. 이렇게 보다는 for month = 1:11에서 end 사이에서 나오는 amplitude와 time 값을 이용해 t_tide 함수에 입력해보십시오.
그리고, t_tide 함수에서는 분조의 이름(NAME)이 출력되므로, strcmp 함수를 통해 NAME이 원하는 이름과 일치하는지 문자열 일치 여부를 검사하여 원하는 분조의 그림만을 그릴 수 있게 될 것입니다.
Siehe auch
Kategorien
Mehr zu 빅 데이터 처리 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!