Причина, по которой они равны nan
s, заключается в том, что до и после вашей сетки нет данных для интерполяции. Линейная интерполяция использует градиент поля в Xi,Yi
, чтобы оценить значение в этой точке. Если с обеих сторон ничего нет, это невозможно.
Вы можете использовать параметр extrapval
для экстраполяции вне указанного вами X,Y
. Просто добавьте параметр 0
после 'linear'
:
interp2(X,Y,tmin(:,:),Xi,Yi,'linear', 0);
Это установит ноль для точек "на краю". Однако вполне вероятно, что для точек снаружи они могут упасть до некоторого значения по умолчанию, например, до нуля. Для этого вы можете добавить нули до и после tmin
:
tmin_padded = [ zeros(1,size(tmin,2)+2)
zeros(size(tmin,1),1) tmin zeros(size(tmin,1),1)
zeros(1,size(tmin,2)+2) ];
(не проверял это, но вы поняли идею.) Вам также нужно будет добавить некоторые пре- и пост-значения к X
и Y
.
Используйте другое значение, если это значение «снаружи» или «по умолчанию» tmin.
PS почему вы создаете tmin_interp
как трехмерное?