интерполировать, чтобы уменьшить размер шага Matlab - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть массивы данных в Matlab, как это: 1, 2, 3; 2, 4, 6; ... есть ли готовый алгоритм в Matlab, который может интерполировать данные и давать мне что-то вроде этого (для линейных, например) 1, 2, 3; 1,5, 3, 4,5; 2, 4, 6;

в этом примере мои шаги идут к 0,5 вместо 1. это простой случай для линейной интерполяции. представьте, что у меня 10000 строк, и я хочу иметь кубическую интерполяцию и увеличить разрешение между моими данными .... Я знаю, что есть математические алгоритмы, но сначала я хочу убедиться, что есть какая-либо готовая функция для этого.

1 Ответ

1 голос
/ 21 апреля 2019

Я думаю, вам нужна функция Matlab interp1.

% Data points to interpolate
v = [1 2 3
     2 4 6
     ];
% X (independent variable) points for the original data
x = [1:size(v,1)]';
% X points to do the interpolation at
xq = [1:0.5:size(v,1)]';
% Do the interpolation
v_interp = interp1(x, v, xq);

Четвертый аргумент interp1() - это параметр, который указывает, какой метод интерполяции использовать, и принимает аргументы, такие как 'linear', * 1007.*, 'spline' и т. Д.Подробнее см. doc interpn.

Уменьшите размер шага в xq = [1:0.5:size(v,1)]', чтобы увеличить разрешение.

...