При попытке использовать метод средней точки для создания геодезических на поверхности , но меня не устраивает синтаксис Matlab, необходимый для итеративного обновления матрицы, содержащей точки на поверхности, встроенной в R3, и, следовательно, состоит из 3 строк и n столбцов, причем первый элемент задан, скажем, как A [:, 1], а последний элемент - A [:, n].
Первоначально на Плоскость XY вдоль линии. Несколько точек вдоль отрезка на плоскости XY, проходящей через A [:, 1] и A [:, n], будут проецироваться на поверхность с использованием функции f (x, y), так что мы получим начальную матрица с первой строкой, содержащей количество координат по оси X; второй ряд - координаты по оси Y; и третий ряд - высота кривой в каждой точке f (x, y). Каждый столбец - это одна точка.
Так что, если первые два столбца - это A [:, 1] и A [:, 2], я хотел бы получить обновленную матрицу, в которой первый столбец будет неизменным, A [:, 1], а второй столбец будет средним значением A [:, 1] и A [:, 2]. Другими словами, первая запись столбца (x) будет средним значением первой записи первого и второго столбцов; то же самое для второй (y) и третьей (z) записей. На другом конце матрица будет заканчиваться средним значением A [:, n - 1] и A [:, n] в предпоследнем столбце и A [:, n] в самом последнем столбце.
Затем будет выполнен шаг минимизации для проецирования каждого столбца на поверхность f (x, y), и тот же процесс усреднения начнется снова.
Обратите внимание, что с каждым шагом матрица будет расти на один столбец .
Логически, этот процесс будет в пределах функции oop в функции.
Я хотел бы спросить, как итеративно выполнить шаг усреднения, который, например, будет на первом шаге go от
A =
0 2 1 4
1 3 3 2
1 2 2 2
до
A =
0 1 1.5 2.5 4
1 2 3 2.5 2
1 1.5 2 2 2
После принятого ответа это код:
A = [0, 2, 1, 4; 1, 3, 3, 2; 1, 2, 2, 2]
A = [A(:,1), (A(:,1:end-1) + A(:,2:end))/2, A(:,end)]