Alex Bausk on engineering and unrelated learnings

Житїє

Проблема управления памятью в Matlab

leave a comment »

В Matlab есть одна неприятная штука — Out of memory error. Фактор управления памятью приходится учитывать при операциях с большими матрицами, которые требуют немпрерывных массивов памяти.
Существует ряд способов решения проблем, связанных с выделением памяти.
Читать про них:
Memory Management Guide
Так, сегодня проблему с очень большой матрицей вектора перемещений в методе конечных элементов UX(i,j) размером 836×2007 мне удалось решить, используя очень простую запись в виде массиыва ячеек UX{i}(j) (массив ячеек хранит указатели на массивы, а не всю матрицу сразу. Просто? А вот я полдня с со своей программой мучился).
Следует отметить, что Matlab вываливался с ошибкой от матрицы, считываемой с диска с явно заданными элементами:

UX(1,1)=5.8;
UX(1,2)=5.4;
UX(1,2)=5.2;
...

Если вы создадите случайную матрицу rand(836,2007) прямо в командной строке, никакой ошибки не случится.

Про массивы ячеек (cell arrays) можно почитать очень дельную статью:
Cell Arrays and their contents

Written by Alexander Bausk

November 28, 2007 at 8:34 am

Posted in Мелочи, Matlab

Tagged with

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: