the interpolation of a Matrix generated more NaNs elements
1 view (last 30 days)
Show older comments
I used the following code to perform an interpolation of my matrix , but instead of solving the problem of NaNs entries I have got more because my matrix has got 2 or 3 successive columns of NaNs. Now my question is how to get rid of the NaN s in my matrix without losing data which was available before the interpolation?
[rr,cc] = size(MT);
xi = 1:cc;% columns
idx = ~isnan(MT);
for r = 1:rr
MTNew(r,:) = interp1(xi(idx(r,:)),MT(r,idx(r,:)),xi,'linear','extrap');
end
Thank you !
0 Comments
Accepted Answer
Star Strider
on 2 Feb 2016
I cannot reproduce the results you get with my simulated data. Your code works correctly for me with this:
MT = randi(50, 125, 1); % Create Data
MT(randi(125, 30, 1)) = NaN; % Create Data
MT = reshape(MT, 25, 5); % Create Data
[rr,cc] = size(MT);
xi = 1:cc;% columns
idx = ~isnan(MT);
for r = 1:rr
MTNew(r,:) = interp1(xi(idx(r,:)),MT(r,idx(r,:)),xi,'linear','extrap');
end
If your ‘MT’ matrix is not too large, upload it so we can test it with your code.
5 Comments
Star Strider
on 3 Feb 2016
There are no empty spaces in the second plot. It (and the matrix that generated it) were complete when I ran your code. The ‘MTNew’ matrix I get is:
MTNew = [-5.9132e+20 -4.7305e+20 -3.5479e+20 -2.3653e+20 -1.1826e+20 -2.2621e+14 -1.0029e+13 -5.9132e+20 -4.4349e+20 -2.9566e+20 -1.4783e+20 7.3075e+13 7.7769e+13 8.2462e+13 -1.2368e+22 -1.4148e+13 -1.5963e+15 -3.1785e+15 -4.7607e+15 -2.3767e+15 7.2754e+12 4.411e+21 1.6233e+14 -1.4787e+15 -3.1197e+15 -4.7607e+15 -2.3684e+15 2.3828e+13 4.411e+21 4.1926e+12 -1.3355e+14 -2.7129e+14 -4.0904e+14 -5.4678e+14 -6.8452e+14
-3.8444e+14 -7.5884e+14 1.933e+14 8.7155e+13 9.1848e+13 9.6542e+13 -1.7291e+14 -3.5309e+14 -5.3327e+14 -1.6463e+14 -3.5309e+14 1.933e+14 -8.2227e+14 -9.6001e+14 -1.0978e+15];
More Answers (0)
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!