MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

MATLAB

В.Г.Потемкин "Введение в Matlab" (v 5.3)
Глава 1. Операционая среда системы Matlab 5

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

1.5. Работа с файлами и оболочкой DOS. Импорт и экспорт данных

Команды cd, dir, delete, type позволяют из командной строки системы MATLAB выполнить ряд команд DOS, связанных с управлением файлами. Приведенная таблица отражает связь команд системы MATLAB с командами DOS:

MATLAB MS-DOS
cd chdir
dir dir
delete del или erase
type type

Большинство этих команд позволяет указывать пути доступа, имена дисководов, использовать групповые символы.

Запуск внешних программ. Признаком перехода к выполнению команд DOS является знак "!", который указывает, что следующая за ним команда - это команда DOS. Это исключительно полезно при вызове утилит и выполнении внешних других программ без выхода из системы MATLAB.

Импорт и экспорт данных.

Существует много приемов для перемещения данных между системой MATLAB и другими приложениями. В большинстве случаев при работе с данными системы MATLAB можно просто использовать команды чтения и записи файлов. Для более сложных наборов данных можно создать собственные программы для чтения и записи на языках C или Fortran. Импортирование данных в систему MATLAB. Существует несколько способов для передачи данных из других приложений в систему MATLAB. Выбор способа зависит от объема и формата данных.

  • Ввод данных в виде списка. Если количество данных невелико, то их можно просто напечатать, помещая в квадратные скобки. Этот метод неудобен при большом количестве данных, поскольку их невозможно редактировать.
  • Формирование данных в М-файле.Используя текстовый редактор, можно сформировать М-файл, в колором данные представлены как список элементов, это тот же первый способ, но он имеет то преимущество,что позоляет с помощью редактора корректировать данные. Достаточно после исправления перезапустить М-файл, чтобы ввести исправленные данные.
  • Загрузка данных из ASCII-файла. ASCII-файлы накапливают данные в 7-разрядном коде без контроля по четности. Каждая строка содержит одинаковое количество значений, разделенных пробелами, и завершается символом возврата каретки. Эти файлы можно редактировать, используя обычный текстовый редактор. Их можно читать непосредственно в системе MATLAB, используя функцию load. При этом создается переменная, имя которой совпадает с именем файла. Можно воспользоваться функций dlmread, чтобы указать другой тип разделителя.
  • Чтение данных с использованием функций ввода/вывода. Применение функций ввода/вывода, а также функций fopen и fread, полезно при загрузке файлов данных из других приложений, использующих специальные форматы данных.
  • Использование специальных средств для чтения файлов. Для чтения файлов, записанных в специальных форматах, в системе MATLAB имеются следующие специализированные функции:
Функция Назначение
dlmread Чтение ASCII-файлов
wk1read Чтение электронных таблиц в формате WK1
imread Чтение изображения из графического файла
auread Чтение звукового файла с расширением .au (формат фирмы SUN Microsystems)
wavread Чтение звукового файла с расширением .wav (формат фирмы Microsoft)
  • Создание MEX-файла. Наилучший способ создания программ для сохранения данных - это использовать уже имеющиеся программы на языках C или Fortran для чтения данных из других приложений. Однако этот метод, называемый смешанным программированием, требует написания специальных программ-связок, оформляемых в виде MEX-файлов.
  • Разработка программы на языках Fortran или C. Программисты, использующие языки Fortran или C, могут написать специальные программы для преобразования данных в формат MAT-файла системы MATLAB. В этом случае преобразованные данные могут быть загружены в систему MATLAB с помощью обычной команды load.

Экспортирование данных из системы MATLAB. Существует несколько способов для передачи данных из системы MATLAB в другие приложения.

  • Использование команды diary. Для массивов небольших размеров можно использовать команду diary, чтобы создать файл дневника, который включает команды MATLAB, используемые в течение сеанса работы, а также позволяет на экране просмотреть необходимые данные. Записи дневника могут быть полезны для вложения в документы или отчеты. В дальнейшем можно использовать текстовый редактор для редактирования дневника.
  • Сохранение данных в формате ASCII. Команда save с опцией -ascii позволяет записать данные в этом формате, причем, используя команду dlmwrite, можно задать другой тип разделителя.
  • Использование специальных средств для записи файлов. Для записи файлов в специальных форматах, определяемых приложениями, в системе MATLAB имеются следующие специализированные функции:
Функция Назначение
dlmwrite Запись данных в ASCII-файл
wk1write Запись данных в электронную таблицу в формате WK1
imwrite Запись изображения в графический файл
auwrite Запись данных в звуковой файл с расширением .au (формат фирмы SUN Microsystems)
wavwrite Запись данных в звуковой файл с расширением .wav (формат фирмы Microsoft)
  • Создание MEX-файла. Наилучший способ создания программ для записи данных - это использовать уже имеющиеся программы на языках C или Fortran для записи данных в другие приложения. Однако этот метод, называемый смешанным программированием, требует написания специальных программ-связок, оформляемых в виде MEX-файлов.
  • Разработка программы на языках Fortran или C. Программисты, использующие языки Fortran или C, могут написать специальные программы для преобразования данных из формата MAT-файла системы MATLAB в формат приложения. В этом случае данные могут быть выгружены из системы MATLAB с помощью обычной команды save.
  • Текстовые файлы с разделителями. Функции dlmread и dlmwrite позволяют читать и записывать данные, отделенные разделителем, используя ASCII-файл. В качестве разделителя может быть использован любой символ, который отделяет одно значение от другого.

Например, рассмотрим файл с именем ph.dat, который содержит данные, разделенные точкой с запятой:

7.2; 8.5; 6.2; 6.6
5.4;9.2;8.1;7.2

Для того чтобы прочитать содержимое этого файла в массив с именем A, надо использовать следующий оператор

A = dlmread('ph.dat', ';');

Второй аргумент функции dlmread указывает тип разделителя.

В дополнение к разделителю, который вы используете, функция dlmread также считает разделителями имеющиеся пробелы. Поэтому функция dlmread, приведенная выше, будет работать правильно, если даже содержимое файла ph.dat будет таким:
7.2; 8.5;                              6.2; 6.6
5.4; 9.2             ;8.1; 7.2

Предупреждение.

Первый аргумент М-функции dlmread - это имя файла, а не идентификатор файла. Поэтому не надо предварительно открывать файл с помощью функции fopen, а следует сразу применять функции dlmread и dlmwrite.

Продемонстрируем, как функция dlmwrite выполняет запись текста с разделителями во внешний файл с именем myfile, используя разделитель ";":

A =
1 2 3
4 5 6
dlmwrite('myfile',A,';')
1; 2; 3
4; 5; 6

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

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

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

Команда diary. Эта команда позволяет сформировать дневник сеанса работы, включая графический вывод. Дневник записывается в специальный файл на жестком диске. После сеанса работы этот файл можно просмотреть с помощью любого текстового редактора.

Например, чтобы создать в текущем каталоге файл дневника с именем febr01.out следует использовать команду diary febr01.out.

Для того чтобы в процессе ведения дневника прервать запись, достаточно воспользоваться командой diary off, а для возобновления командой diary on.

М-файл Startup. Файл matlabrc.m, который размещен в каталоге local, зарезервирован для использования программистами фирмы MathWorks, а на многопользовательских системах для использования менеджером системы.

Файл startup.m предназначен для пользователя. В нем можно устаноаить, задаваемые по умолчанию пути доступа, дескриптоы графики, а также переменные рабочей области.

Например, в файл startup.m можно ввести строку, которая добавит каталог /home/me/mytools к установленному по умолчанию списку путей доступа addpath /home/me/mytools.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика