Interpolating data to find the values at NaN locations in the region.

2 Ansichten (letzte 30 Tage)
I have a field which, when I plot, results in NaN values in between the known values. I want to interpolate the values on these NaN locations in the (blue) region only and keep rest of the region as NaN. I could not figure how exactly to achieve it.
Attached is .mat file of the field and following is the code to get the same plot.
ax = pcolor((v)); colormap(parula(50)); %caxis([30 50])
axis tight equal;colorbar
ax.LineStyle = 'none';ax.EdgeColor = 'flat';ax.FaceColor = 'flat';
ax.FaceAlpha = 1;
axis ij on equal

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 19 Nov. 2020
Bearbeitet: Andrei Bobrov am 19 Nov. 2020
[m,n] = size(v);
[i,j] = ndgrid(1:m,1:n);
lo = ~isnan(v);
F = scatteredInterpolant(i(lo),j(lo),v(lo));
vout = F(i,j);
lo2 = lo;
lo2(97:132,4:118) = true;
vout(~lo2) = NaN;

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with Image Processing Toolbox 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!

Translated by