Иллюстрированный самоучитель по Matlab

         

Специализированные файлы


Приведенные ниже функции относятся к некоторым

специализированным файлам:

М = dlmread(filename, delimiter) — считывает данные из файла filename с ASCII-разделителем, используя разделитель delimiter, в массив М. Используйте '\t', i чтобы определить в качестве разделителя символ табуляции;

М = dlmreadCfilename.delimiter,г.с) — считывает данные из файла filename с ASCII-разделителем, используя разделитель delimiter, в массив М, начиная со смещения г (по строкам) и с (по столбцам). Параметры r и с отсчитываются начиная с нуля, так что г=0, с=0 соответствует первому значению в файле;

М = dlmreadCfilename, deli mi ten, r, с, range) — импортирует индексированный или именованный диапазон данных с разделителями в формате ASCII. Для использования диапазона ячеек нужно определить параметр range в виде range = [ВерхняяСтрока. ЛевыйСтолбец. НижняяСтрока, ПравыйСтолбец].

Аргументы функции dlmread следующие:

delimiter — символ, отделяющий отдельные матричные элементы в электронной таблице формата ASCII;

(,) — разделитель по умолчанию;

 r, с — ячейка электронной таблицы, из которой берутся матричные элементы, соответствующие элементам в верхнем левом углу таблицы;

range — вектор, определяющий диапазон ячеек электронной таблицы.

Команда dlmwrite преобразует матрицу MATLAB в файл с ASCII-разделителями, читаемый программами электронных таблиц:

dl mwri te (f i 1 ename. A. delimiter) — записывает матрицу А в верхнюю левую ячейку электронной таблицы filename, используя разделитель delimiter для отделения элементов матрицы. Используйте ' U' для создания файла с элементами, разделенными табуляцией. Все элементы со значением 0 опускаются. Например, массив [102] появится в файле в виде ' 1., 2' (если разделителем является запятая):

dlmwrite(filename,A,delimiter, r,с) — записывает матрицу А в файл filename, начиная с ячейки, определенной r и с, используя разделитель delimiter;

info=imfinfo(filename.fmt) — возвращает структуру, поля которой содержат информацию об изображении в графическом файле. Аргумент filename — строка, определяющая имя графического файла, fmt — строка, которая определяет формат файла. Файл должен находиться в текущей директории или в директории, указанной в пути MATLAB. Если imflnfo не может найти файл с именем filename, она ищет файл с именем filename.fmt.


В табл. 19. 5 показаны возможные значения для аргумента fmt. 



Таблица 19.5.


Поддерживаемые графические форматы и их обозначения

Если filename — TIFF- или HDF-файл, содержащий более одного изображения, то 1 nf о представляет собой массив структур с отдельным элементом (т. е. с индивидуальной структурой) для каждого изображения в файле. Например, info(3) будет в таком случае содержать информацию о третьем изображении в файле. Множество полей в info зависит от конкретного файла и его формата. Однако первые девять полей всегда одинаковы. В табл. 19.6 перечислены эти поля и описаны их значения.



Таблица 19.6.



Поля информационной структуры и их значения

info = imfinfo(filename) — пытается определить формат файла по содержимому. Пример:

» info = irrifinfo('С:\выставка\Интернет.bmр') 

info =

Filename: 'С:\выставка\Интернет.bmр'

FileModDate: '04-Jan-1999 22:35:56'

FileSize: 481078

Format: 'bmp'

FormatVersion: 'Version 3 (Microsoft Windows 3.x)'

или truecolor (RGB) изображение класса uint8, команда imwrite записывает фактические значения массива в файл. Если А имеет класс double, команда imwrite переопределяет значения в массиве перед записью, используя преобразование uint8(round(255*A)). Эта операция преобразует числа с плавающей запятой в диапазоне [0, 1] к 8-битовым целым числам в диапазоне [0, 255]. Допустимые значения параметра ftnt аналогичны тем, что используются в команде imfinfo;

imwrite(X,map,filename,fmt) — записывает индексированное изображение, находящееся в массиве X, и соответствующую ему цветовую палитру тар в файл filename. Если X содержит изображение класса uint8, команда imwrite записывает фактические значения массива в файл. Если X имеет класс double, команда imwrite переопределяет значения в массиве перед записью, используя преобразование uintS(X-l). Палитра тар должна иметь класс double; функция imwrite переопределяет значения в тар, используя преобразование uint8(round (255*mар));

imwrite (....filename) — записывает изображение в filename в формате, указанном в расширении файла. Расширение может быть одним из допустимых значений параметра fmt;



imwrite (....Parameter, Value....) определяет параметры, которые контролируют различные свойства выходного файла. Параметры используются для HDF, JPEG, и TIFF файлов;

М = wklread(filename) — считывает электронную таблицу Lotusl23 (WK1) в матрицу М;

М = wklread(filename.r.c) — считывает данные, начиная с ячейки, определенной значениями (r,с). Параметры г и с отсчитываются от нуля, так что г=0, с=0 определяют первую ячейку в файле;

М = wklread(filename,r,c,range) — считывает диапазон значений, определенный параметром range, где range может быть представлен в одной из следующих форм:



вектор с четырьмя элементами, определяющий диапазон ячеек в формате [верхняя_строка. левый_столбец, нижняя_строка, правый_столбец];

диапазон ячеек, определенный строкой, например ' А1... С5';

имя диапазона, определенное в виде строки, например 'Sales'.

wklwrite(filename.M) — записывает значения матрицы М в файл filename электронной таблицы Lotus 123 WK1;

wklwrite(filename,M,r,c) — записывает данные, начиная с ячейки, определенной значениями (r,с). Параметры г и с отсчитываются от нуля, так что г=0, с=0 определяют первую ячейку в электронной таблице.

В табл. 19.7 представлены форматы изображений, доступных для чтения функцией imread. Списки параметров и их возможных значений для функции imwrite содержатся в табл. 19.8.

Необходимо отметить, что большинство рассмотренных выше функций редко применяются пользователями. Но они довольно широко используются в системных целях и представляют большой интерес для специалистов.



Таблица 19.7.



Форматы файлов и их краткое описание



Таблица 19.8.



Параметры, используемые при записи графических файлов


Содержание раздела