How can I find nearest value in large grid data?
1 次查看(过去 30 天)
显示 更早的评论
I have a grid having cells 100x60, containing contours data. Some of the cells have filled with whole number from 1 to 15 showing the elevation of contours, now how can I interpolate points between the contours line to fill all empty cells?
Note: Points are not in regular way, these scattered points
0 个评论
回答(2 个)
Walter Roberson
2016-7-13
See John D'Errico's File Exchange contribution "inpaint_nan"
2 个评论
Chad Greene
2016-7-14
If you download inpaint_nans, it makes the problem pretty easy. For example, say you have some gridded dataset like this:
Z = peaks(100);
but a few points are NaNs:
Z([423 898 1234] = NaN;
You can fill in the missing values like this:
Z_filled = inpaint_nans(Z);
Image Analyst
2016-7-13
How about scatteredInterpolant()?
5 个评论
Image Analyst
2016-7-13
I need to leave now, but my first attempt would be to use scatteredInterpolant, like I already suggested. But I'm sure you've tried that by now, so let's see your code - it may speed me up when I return later today. If you didn't try my suggestion, then why not?
Walter Roberson
2016-7-13
YourData(YourData == 0) = nan;
Now call the File Exchange contribution inpaint_nan on YourData.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!