exponenta event banner

Экспорт в файлы HDF4

Запись данных MATLAB в файл HDF4

В этом примере показано, как записать массивы MATLAB ® в набор научных данных в файле HDF4 .

Добавить пакет в список импорта

Добавить matlab.io.hdf4.* путь к списку импорта.

import matlab.io.hdf4.*

Префикс последующих вызовов для функций в matlat.io.hdf4.sd пакет с sd, а не весь путь пакета.

Создать файл HDF4

Создание нового файла HDF4 с помощью matlab.io.hdf4.sd.start функция. Эта функция соответствует подпрограмме API SD, SDstart.

sdID = sd.start('mydata.hdf','create');

sd.start создает файл и возвращает идентификатор файла с именем sdID.

Чтобы открыть существующий файл вместо создания нового, вызовите sd.start с 'write' доступ вместо 'create'.

Создание набора данных HDF4

Создайте набор данных в файле для каждого массива MATLAB, который требуется экспортировать. При записи в существующий набор данных можно перейти к следующему шагу. В этом примере создайте один набор данных для массива выборочных данных, A, с использованием matlab.io.hdf4.sd.create функция. Эта функция соответствует подпрограмме API SD, SDcreate. ds_type аргумент - символьный вектор, определяющий тип данных MATLAB набора данных.

A = [1 2 3 4 5 ; 6 7 8 9 10 ; 11 12 13 14 15]; 
ds_name = 'A';
ds_type = 'double';
ds_dims = size(A);
sdsID = sd.create(sdID,ds_name,ds_type,ds_dims);

sd.create возвращает идентификатор набора данных HDF4 SD, sdsID.

Запись данных MATLAB в файл HDF4

Запись данных в A к набору данных в файле с помощью matlab.io.hdf4.sd.writedata функция. Эта функция соответствует подпрограмме API SD, SDwritedata. start задает отсчитываемый от нуля начальный индекс.

start = [0 0];
sd.writeData(sdsID,start,A);

sd.writeData ставит в очередь операцию записи. Операции в очереди выполняются при закрытии файла HDF4.

Запись данных MATLAB в часть набора данных

Замените вторую строку набора данных вектором B. Использовать start входное значение [1 0] для начала записи во второй строке, первом столбце. start использует индексацию на основе нуля.

B = [9 9 9 9 9];
start = [1 0];
sd.writeData(sdsID,start,B);

Запись метаданных в файл HDF4

Создание глобального атрибута с именем creation_date, со значением, которое является текущей датой и временем. Используйте matlab.io.hdf4.sd.setAttr функция, которая соответствует подпрограмме API SD, SDsetattr.

sd.setAttr(sdID,'creation_date',datestr(now));

sd.Attr создает атрибут файла, также называемый глобальным атрибутом, связанный с файлом HDF4, идентифицированным sdID.

Связать предопределенный атрибут, cordsys, к набору данных, идентифицированному sdsID. Возможные значения этого атрибута включают текстовые строки 'cartesian', 'polar', и 'spherical'.

attr_name = 'cordsys';
attr_value = 'polar';
sd.setAttr(sdsID,attr_name,attr_value);

Закрыть набор данных HDF4

Закройте доступ к набору данных с помощью matlab.io.hdf4.sd.endAccess функция. Эта функция соответствует подпрограмме API SD, SDendaccess. Перед закрытием файла необходимо закрыть доступ ко всем наборам данных в и HDF4 файле.

sd.endAccess(sdsID);

Закрыть файл HDF4

Закройте файл HDF4 с помощью matlab.io.hdf4.sd.close функция. Эта функция соответствует подпрограмме API SD, SDend.

sd.close(sdID);

При закрытии файла HDF4 выполняются все операции записи, поставленные в очередь с помощью SDwritedata.

Управление идентификаторами HDF4

MATLAB ® поддерживает функции утилит, упрощающие использование HDF4 в среде MATLAB.

Просмотр всех открытых идентификаторов HDF4

Используйте функцию шлюза к API утилиты MATLAB HDF4, hdfmlи укажите имя listinfo в качестве аргумента для просмотра всех открытых в данный момент идентификаторов HDF4. MATLAB обновляет этот список при каждом создании или закрытии идентификаторов HDF. В этом примере открыты только два идентификатора.

hdfml('listinfo')
No open RI identifiers
No open GR identifiers
No open grid identifiers
No open grid file identifiers
No open annotation identifiers
No open AN identifiers
Open scientific dataset identifiers:
	262144
Open scientific data file identifiers:
	393216
No open Vdata identifiers
No open Vgroup identifiers
No open Vfile identifiers
No open point identifiers
No open point file identifiers
No open swath identifiers
No open swath file identifiers
No open access identifiers
No open file identifiers

Закрыть все открытые идентификаторы HDF4

Закройте все открытые в данный момент идентификаторы HDF4 в одном вызове с помощью функции шлюза к API утилиты MATLAB HDF4, hdfml. Укажите имя closeall подпрограмма в качестве аргумента:

hdfml('closeall')

См. также

| | | | | |

Связанные темы