Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
12 / 2 семестр / Лекция 5(1).doc
Скачиваний:
29
Добавлен:
10.06.2015
Размер:
200.19 Кб
Скачать

Операции с рабочей областью и текстом сессии Дефрагментация рабочей области

По мере задания одних переменных и стирания других рабочая область перестает быть непрерывной и начинает содержать «дыры» и всякий «мусор». Это приводит к ухудшению работы системы или даже к нехватке оперативной памяти. Такая ситуация возможна когда вы работаете с достаточно большими массивами данных.

При работе с большими данными во избежание непроизвольных потерь памяти следует использовать команду pack, осуществляющую дефрагментацию рабочей области. Эта команда переписывает все определения рабочей области на жесткий диск, очищает рабочую область и затем заново считывает все определения без «дыр» и «мусора» в рабочую область.

Сохранение рабочей области сессии

Переменные и определения новых функций в системе MATLABхранятся в особой области памяти, именуемой рабочей областью.MATLABпозволяет сохранить значения переменных в виде бинарных файлов с расширением.mat. Для этого служит команда save,которая может использоваться в ряде форм:

save fname– записывается рабочая область всех переменных в файле бинарного формата с именемfname.mat;

save fname X– записывает только значения переменнойX;

save fname X Y Z– записывает значения переменныхX,Y и Z.

После параметров команды saveможно указать ключи, уточняющие формат записи файлов:

  • mat– двоичный МАТ-формат, используемый по умолчанию;

  • ascii–ASCII– формат единичной точности (8 цифр);

  • ascii - double–ASII– формат двойной точности (16 цифр);

  • ascii - double - tabs– формат с разделителями и метками табуляции.

V4 – записьMAT– файла в формате версииMATLAB4;

  • append - добавление в существующийMAT- формат

Возможно использование слова save и в формате функции, а не команды, например

save(‘fname’, ‘var1’,’var2’)

В этом случае имена файлов и переменных задаются строковыми константами. Следует отметить, что возможности сохранения всего текста сессии, формируемой в командном режиме, команда saveне дает. Дело в том что сессия является результатом проб и ошибок и ее текст содержит сообщения об ошибках, переопределение функций и разной прочей «шелухи». Необходимость сохранения всего это обычно нет. А если возникнет необходимость – для этого служит командаdiary. Вы можете так же воспользоваться редактором и отладчиком, которые позволят сохранить документ в корректной форме в виде файла с расширение.m текстового формата.

Ведение дневника

Следует отметить , что сессия не записывается на диск стандартной командой save. Однако, если такая необходимость есть, можно воспользоваться специальной командой для ведения так называемого дневника сессии:

diary file_name– ведет запись на диск всех команд в строках ввода и полученных результатов в виде текстового файла с указанным именем;

diary off– приостанавливает запись в файл;

diary on– вновь начинает запись в файл.

Таким образом, чередуя команды diaryoffиdiaryon, можно сохранять нужные фрагменты сессии в их формальном виде. Командуdiaryможно задать и виде функцииdiary(‘file’), где строка ‘file’ задает имя файла.

Следующий пример поясняет технику применения команды diary:

Нетрудно заметить, что в данном примере первая операция 1+2=3 – будет записана в файл myfile.m, вторая 2+3 = 5 – не будет записана, третья операцияsin(1)=0.8415 – снова будет записана. Таким образом, будет созданScript– файл следующего вида:

1+2

ans =

3

diary off

sin(1)

ans =

0.8415

diary off

Он приведен в таком виде, как записан, то есть с пробелами между строк. Одна из распространенных ошибок начинающих пользователей – попытка запустить подобный файл в командной строке указанием его имени:

Обычно это как вы виде приводит к ошибке, так как данный файл – это просто текстовая запись команд и результатов их выполнения, не проверяемая на корректность и содержания ряд строк, ошибочных с позиции синтаксиса языка программирования MATLAB– например, выражениеans=.

Зато команда typeпозволяет просмотреть текст такого файла со всеми записанными действиями:

Во избежание отмеченных казусов рекомендуется записывать файл с расширением, отличным от .m, напримерtxt. Это позволит встраивать подобные текстовые файлы дневника сессии и документы, содержащие ее описание.

Соседние файлы в папке 2 семестр