the interpolation of a Matrix generated more NaNs elements
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Star Strider
am 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 Kommentare
Star Strider
am 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];
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interpolation 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!