Как работать с пустыми массивами в python, как в MATLAB? - PullRequest
0 голосов
/ 24 апреля 2020

Я реализую код от MATLAB до Python. Я должен определить несколько пустых массивов, присвоить им некоторые значения и сделать их пустыми в теле кода.

Скажем, мой код в MATLAB выглядит так:

s1 = []

s1 = [A.T]

s1 будет равняться пустому значению в MATLAB снова для следующих итераций (s1 = []). Я попытался написать это в python, как показано ниже:

s1 = []
s1.append(A.T)
s11 = np.vstack(s1)

, и я могу использовать s11 вместо s1 в моем коде. Тем не менее, для следующих итераций я должен очистить s11, и поэтому я написал это так: s11 = [].

Выполнение этого вызовет ошибку, когда я доберусь до этой строки s11 = np.vstack(s1), так как у меня есть приравнивается s11 к объекту None ([]) на предыдущей итерации.

Итак, мне было интересно, как я могу создать пустой массив в python, присвоить или добавить значения к нему, а затем сделать его снова пустым? s1 является вводом функции, и я должен иметь возможность сделать ее пустой на разных итерациях. В MATLAB это так просто и без проблем.

Любые комментарии будут высоко оценены. Спасибо

1 Ответ

0 голосов
/ 24 апреля 2020

Когда я читаю ваш вопрос, похоже, вы используете списки. Это немного сбивает с толку, так как массив в python - это нечто другое, чем списки.

Сначала вы уже упомянули о своем вопросе:

A = [[1,2],[3,4]]
s1 = []
s1.append(A)

s11 = np.vstack(s1)
s11 = []

Одна очень важная вещь: In в тот момент, когда вы используете np.vstack, ваш список меняется на numpy .array. Поэтому вы больше не можете использовать del s11[:].

Если это не работает, пожалуйста, дайте нам больше информации о A.T, возможно, есть какая-то проблема с типом данных.

Осталось одно: вы пишете об ошибке, которая возникает. Нам очень трудно волшебным образом прочитать ваше сообщение об ошибке на расстоянии от вашего компьютера (и это незаконно).

Эти две вещи: сообщение об ошибке и полные данные из вашего минимального примера необходимы нам, чтобы помочь вам.

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