Problem with interpolating missing data
4 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Star Strider
on 4 Oct 2018
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
More Answers (1)
Kevin Chng
on 4 Oct 2018
Edited: Kevin Chng
on 4 Oct 2018
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 Comments
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!