Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка mathlab.doc
Скачиваний:
40
Добавлен:
12.02.2015
Размер:
612.35 Кб
Скачать

Обмен файлами данных для различных платформ.

Иногда оказывается необходимо работать с версиями системы MATLAB для разных вычислительных платформ или передавать разработанные приложения на другие системы. Приложения, создаваемые в системе MATLAB могут включать М-файлы, представляющие собой М-функции или М-сценарии, а также МАТ-файлы, содержащие двоичные данные. Оба типа файлов могут быть непосредственно использованы на различных платформах:

  • М-файлы являются ASCII-файлами, содержащими обычный текст. Они не зависимы от типа используемого компьютера. В то же время для различных платформ символами окончания строки могут быть как символ CR, так и символ LF. Интерпретатор системы MATLAB допускает любые комбинации.

  • МАТ-файлы являются двоичными файлами и зависят от типа используемого компьютера. Тем не менее, они могут переноситься с одного типа компьютера на другой, поскольку содержат признак используемого компьютера в заголовке файла. Система MATLAB проверяет этот признак, когда загружает файл и, если оказывается, что файл создан на компьютере другой платформы, выполняет необходимое преобразование.

Чтобы использовать MATLAB на компьютерах различных платформ, необходимы программы обмена данными для двоичного и ASCII-формата. При использовании этих программ надо быть уверенными, что MAT-файлы передаются как двоичные файлы, М-файлы - как ASCII-файлы. Ошибка в установке соответствующих режимов обычно разрушает данные.

Система MATLAB требует для хранения каждой матрицы непрерывной области памяти. В частности, образы и анимация могут потреблять очень большие объемы памяти. В дополнение к памяти для хранения матрицы, карта пикселей, используемая для образов, требует памяти, пропорциональной площади изображения. Так например, изображение 500х500 цветных пикселей требует 2 МБ оперативной памяти. Если требуется 10 изображений такого размера, то уже необходимо 20 МБ, что является очень большим объемом. Чтобы уменьшить объем памяти, требуемый для этих операций, надо ограничить размер выводимых изображений.

Разрешение проблем выделения памяти. Если отсутствует фрагмент памяти, достаточный для размещения матрицы, то возникает ошибка out of memory, хотя общий объем свободной памяти может быть большим. Это связано с фрагментированием памяти в процессе ее выделения. Чтобы ликвидировать фрагментацию, следует воспользоваться командой pack; другой способ - разместить массивы больших размеров в оперативной памяти заранее в начале сеанса работы.

Управление динамической памятью. Система MATLAB использует для выделения динамической памяти стандартные функции malloc и free языка С. Эти утилиты поддерживают пул памяти, которая распределяется операционной системой в относительно медленном темпе; в свою очередь, для системы MATLAB эта память выделяется намного быстрее. Если пул недостаточен, то утилит malloc запрашивает операционную систему относительно выделения другого фрагмента оперативной памяти, чтобы пополнить пул. По мере выделения памяти пул может становиться очень большим. Чтобы поддержать быстродействие, утилиты malloc и free не возвращают использованную память операционной системе. Эти подпрограммы исходят из предположения, что если большой объем памяти потребовался один раз, то в нем возникнет необходимость снова. Побочный эффект этого алгоритма состоит в том, что если MATLAB использовал некоторый объем памяти один раз, то она более не доступна другим программам, даже если MATLAB не использует это. Память пула возвращается операционной системе только по завершении работы системы MATLAB.