Problem with interpolating missing data
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi all, I have the following data:
d=[1:13]'
T_Req3 = [
26 24.6
27.3 26.4
19.3 16.1
24.3 23.3
25.1 21.2
26.2 25.6
29.7 28.7
32.7 30.9
28.5 27.3
30.5 30.3
NAN 33.3
35.5 35.2
26.1 25.4];
I need to find the value of NaN using interpolation. I tried the following code but didn't work: Any help would be highly appreciated. Thank you
Tl1 = T_Req3;
%Using the"find" function to filter the the NAN data
f = find(~isnan(T_Req3(11,:)));
% 4- Using the interpolation function to estimate the value of Tmax29
Tl1(11,1) = interp1(d(f),T_Req3(11,f),1);
댓글 수: 0
채택된 답변
Star Strider
2018년 10월 4일
Try this:
d_T_Req3 = cat(2, d, T_Req3); % Concatenate
idx = ~any(isnan(d_T_Req3), 2); % Logical Index Of Rows Without ‘NaN’
T_new = interp1(d_T_Req3(idx,1), d_T_Req3(idx,2:end), d) % Interpolate
T_new =
26 24.6
27.3 26.4
19.3 16.1
24.3 23.3
25.1 21.2
26.2 25.6
29.7 28.7
32.7 30.9
28.5 27.3
30.5 30.3
33 32.75
35.5 35.2
26.1 25.4
추가 답변 (1개)
Kevin Chng
2018년 10월 4일
편집: Kevin Chng
2018년 10월 4일
Hi D J,
Hope my code could help you.
T_Req3 = [
26 24.6
27.3 26.4
19.3 16.1
24.3 23.3
25.1 21.2
26.2 25.6
29.7 28.7
32.7 30.9
28.5 27.3
30.5 30.3
NAN 33.3
35.5 35.2
26.1 25.4];
[TF,F] = fillmissing(T_Req3,'linear')
The missing data will be replaced in TF by linear method (Interpolation). F is telling you where is the missing data.
^^
if you want to know what is the filled value for your missing data
TF(F)
댓글 수: 4
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!