Операции с рабочей областью и текстом сессии. Дефрагментация рабочей области. Сохранение рабочей области сессии.
По мере задания одних переменных и стирания других рабочая область перестает быть непрерывной и начинает содержать "дыры" и всякий "мусор". Это рано или поздно может привести к ухудшению работы системы или даже к нехватке оперативной памяти. Подобная ситуация становится возможной, если вы работаете с достаточно большими массивами данных.
Во избежание непроизводительных потерь памяти при работе с объемными данными (а векторы, матрицы и массивы относятся к таковым) следует использовать команду pack, осуществляющую дефрагментацию рабочей области. Эта команда переписывает все определения рабочей области на жесткий диск, очищает рабочую область и затем заново считывает все определения без "дыр" и "мусора" в рабочую область.
Сохранение рабочей области сессии
Переменные и определения новых функций в системе MATLAB хранятся в особой области памяти, именуемой рабочей областью. MATLAB позволяет сохранять значения переменных в виде бинарных файлов с расширением ".mat". Для этого служит команда save, которая может использоваться в ряде форм:
- save fname – записывается рабочая область всех переменных в файле бинарного формата с именем fname.mat;
- save fname X – записывает только значение переменной X;
- save fname X Y Z – записывает значения переменных X, Y и Z.
После этих параметров можно указать ключи, уточняющие формат записи файлов:
- -mat – двоичный МАТ-формат, используемый по умолчанию;
- -ascii– ASCII-формат единичной точности (8 цифр);
- -ascii-double – ASCII-формат двойной точности (16 цифр);
- -ascii-double-tabs – формат с разделителем и метками табуляции;
- V4 – запись МАТ-файла в формате версии MATLAB 4;
- -append – добавление в существующий МАТ-файл.
Возможно использование слова save и в формате функции, а не команды, например:
save(
'fname'
,
'var1'
,
'var2'
)
В этом случае имена файлов и переменных задаются строковыми константами.
Следует отметить, что возможности сохранения всего текста сессии, формируемой в командном режиме, команда save не дает. И не случайно! Дело в том, что сессия является результатом проб и ошибок, и ее текст наряду с правильными определениями содержит сообщения об ошибках, переопределения функций и переменных и много прочей "шелухи". Необходимости сохранять такое "творчество" обычно нет. А если есть – для этого служит команда diary, описанная чуть ниже.
Тем не менее это не значит, что вы не имеете возможности записать только то рациональное зерно, которое родилось в ходе попыток реализации ваших алгоритмов и методов решения задач. Надо просто воспользоваться редактором и отладчиком, которые позволяют (после отладки программы) получить документ в корректной форме без синтаксических и иных ошибок. Такой документ сохраняется в текстовом формате в виде файла с расширением ".m".