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

Работа с файлами и оболочкой 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