Я пытаюсь написать код для кусочно-линейной интерполяции, используя код, который мой учитель дал классу - стоит отметить, что у учителя, похоже, возникли проблемы с уравнением внутри циклов for - и я столкнулся с ошибка «В присваивании A (I) = B количество элементов в B и I должно быть одинаковым». после выхода из петель. Я уже посмотрел на ошибку и знаю, что это происходит из-за того, что пытался подогнать элементы одного массива в другой, но другого размера, но я не знаком с матрицами в MATLAB. Может ли кто-нибудь помочь мне понять, откуда исходит моя ошибка?
Вот код:
EDU>> pts = [-5:1.25:5];
EDU>> x = [-5:.01:5];
EDU>> length(pts)
ans =
9
EDU>> x = x';
EDU>> size(x)
ans =
1001 1
EDU>> fpts = 1./(1+pts.^2);
EDU>> plot(fpts)
EDU>> deltax = 10/1000
deltax =
0.0100
EDU>> 1000/8
ans =
125
EDU>> newF = zeros(size(x));
EDU>> for k = 1:9
for j = 1:125
newF((k)*125+j) = (fpts(k) + ((x*k*125) + j) + (x*k*125))/(1.25*(fpts(k)- pts(k)));
end
end
??? In an assignment A(I) = B, the number of elements in B and I must be the same.