Название этого вопроса также почти ответ - введите пропущенные значения, используя fillmissing
.
A = [1 nan 1 2 2 nan nan 3 nan 4 nan nan 5];
B = fillmissing(A,'linear');
Эта функция была введена в R2016b.
Тот же лог c может быть реализован с использованием interp1
и isnan
.
idx = ~isnan( A );
x = 1:numel(A);
B = interp1( x(idx), A(idx), x, 'linear', 'extrap' );
Обратите внимание, что экстраполяция здесь дает немного другое поведение для значений NaN
на каждом конце входные векторы.