Я пытаюсь написать скрипт линейной интерполяции в Matlab.Как мне исправить, что векторы имеют разную длину?
Я пытался обернуть голову вокруг этой проблемы, но, похоже, не понимаю.Должен ли оператор if быть включен где-либо в цикл for?
z = linspace(0,1000,21)
vel = 1500*z^0.1;
% I want to interpolate vel between the 201 elements of depths.
depths = [0:5:1000];
numel_depths = numel(depths);
for ii = 1:numel_depths %Going through all indices of depths
lower = find(z > depths(ii),1); % Finding x0 and x1.
higher = find(z < depths(ii),1,'last');
V2(ii) = vel(lower) + ((vel(higher) - vel(lower))/(z(higher)-
z(lower)))*(depths(ii)-z(lower)); % linear interpolation step
end
Теперь он возвращает ошибку о том, что разные стороны имели разное количество элементов.Есть ли способ исправить это, чтобы он работал как функция interp1, уже установленная в MATLAB?