Индексирование массива в цикле for в MATLAB - PullRequest
0 голосов
/ 05 ноября 2018

Итак, я понимаю, как написать очень простой для цикла, проходящего через массив в Matlab. Пример интерактивной справки:

A = [1 2 3; 4 5 6]
for i = 1:numel(A)
  B(i) = A(i).^2
end

Так что это будет проходить по каждому числу в массиве и возводить его в квадрат. И я понимаю это, но что, если я хочу работать с предыдущими значениями i?

Моя проблема заключается в следующем: я хочу создать цикл, который будет выполнять интерполяционный полином Лагранжа для матрицы данных. Это означает, что мне нужно работать с термином i, термином i-1, термином i + 1 и т. Д. У меня есть следующее.

A = [1 0.6767; 1.5 0.3734; 1.6 0.3261; 2.5 0.08422; 3.5 0.01596]
    for i = 1:numel(A)
        F_1 = A(i,i+1)*(2*A(i+1,i) - A(i+1,i) - A(i+2,i))/((A(i,i) - A(i+1,i))*(A(i,i) - A(i+1,i)))
              + A(i+1,i+1)*(2*A(i+1,i) - A(i,i) - A(i+2,i))/((A(i+1,i) - A(i,i))*(A(i+1,i) - A(i+2,i)))
              + A(i+2,i+1)*(2*A(i+1,i) - A(i,i) - A(i+1,i))/((A(i+2,i) - A(i,i))*(A(i+2,i) - A(i+1,i)))
    end 

Это явно не работает, потому что мои навыки программирования элементарны. Как мне индексировать и работать с термином i, термином i + 1 и т. Д.?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...