Как инициализировать массив объектов, когда массив double уже установлен? - PullRequest
0 голосов
/ 01 мая 2020

Я хочу инициализировать массив частиц, где Particle - это определенный мной класс. Мне сказали здесь , что я должен сделать это так

particles(2, 1) = Particle();

, но это не работает, если particles ранее было установлено на что-то вроде массив удваивается, или может быть больше, чем предполагаемый размер (и не будет уменьшаться с этой строкой, я думаю, будет изменена только затронутая строка). Есть ли способ отменить переменную для инициализации моего массива fre sh?

Я получаю ошибку:

Произошла следующая ошибка при преобразовании из Particle в double: преобразование в double из частиц невозможно.

Ошибка в основных (строка 4) частицах (2, 1) = частица ();

1 Ответ

1 голос
/ 02 мая 2020

Существуют различные возможные решения. Чтобы очистить переменную, используйте clear:

clear particles
particles(2, 1) = Particle;

(обратите внимание, что нет необходимости добавлять пустые скобки для вызова функции без аргументов.)

Однако лучшее решение IMO это создать массив вашего класса и присвоить его переменной

particles = repmat(Particle,2,1);

Этот оператор работает, только если вы не перегружены оператором конкатенации.

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