Будет ли A = A + B выделять новую память? - PullRequest
2 голосов
/ 17 января 2012

При написании

A = A + B;

Матрицы A и B, будет ли MATLAB выполнять это "на месте", то есть изменять элементы в A, или будет выделяться новая память для сохранения результата? Если да, то как мне этого избежать?

Мне интересно, почему, например, кто-то пишет

A = A + B + A^2;

К исходным данным необходимо обращаться несколько раз, и поэтому их нельзя просто перезаписать при первом добавлении.

Спасибо.

1 Ответ

5 голосов
/ 17 января 2012

Я протестировал его на своем компьютере с помощью системного монитора. Я заметил, что A=A+B не выделяет новую память, но A=A+B+A^2 выделяет новую память.

Это имеет смысл, поскольку в C ++ первый код легко написать без выделения памяти, но для второго кода это невозможно.

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