Для начала я делаю Runge-Kutta в массиве с тремя DOF NumPy. Мой массив выглядит следующим образом:Добавление в NumPy (Python) Array
состояния = [[X], [Vx], [Y], [Vy], [Z], [Vz]]
Я бегу мой Рунге-Кутта, и получить мои четыре значения K, которые я переношу с помощью [newaxis]. Поэтому, когда я пытаюсь добавить новые состояния в мой массив состояний следующим образом:
states = append(states, states[:,i] + (K1.T + 2 * K2.T + 2 * K3.T + K4.T)/6, 1)
, где «я» счетчик, который начинается с 0 и подсчитывает для каждой итерации.
Однако, когда я запускаю свой код, мой массив результирующих состояний не является двумя столбцами из шести элементов. Похоже, что я добавляю вектор-строку вместо вектора столбца в мой массив состояний. Я запустил код с двумя элементами (X, Vx) в столбце, и все было добавлено просто отлично (или, по крайней мере, мой результат имел смысл).
Я попытался заставить результат моего Рунге-Кутты быть вектором столбца, но это испортило мой расчет значений K. Я пробовал варианты моего кода добавления и все еще имею тот же результат.
Это клон кода Matlab, и я не смог найти что-либо на массивах NumPy и индексировании, которые мне помогают.
Любая помощь приветствуется.
Спасибо.
UPDATE: states[:,0] = [[0], [2300], [0], [0], [-1600], [500]]
- оригинальный states[:,1] = [[2300], [2100], [0], [0], [-2100], [450]]
- добавить states = [[0, 2300], [2300, 2100], [0, 0], [0, 0], [-1600, -2100], [500, 450]]
- конечный Эти векторы-столбцы.
@JoranBeasley - вы [не можете] http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.append.html)? – MSeifert
lol ну теперь я чувствую себя немой ... Я никогда не понимал ... настолько глупо: P –
Лучше думать о 'государствах 'как о списке Python, а не о массиве. Вы можете легко собирать массивы в списке. Создание массива путем многократной конкатенации - это плохая практика «numpy». – hpaulj