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

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

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

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

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

import matlab.io.hdf4.*

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

Создание HDF4 файла

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

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

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

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

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

Создайте набор данных в файле для каждого массива MATLAB, который вы хотите экспортировать. Если вы записываете в существующий набор данных, можно перейти к следующему шагу. В этом примере создайте один набор данных для массива выборочных данных, A, с использованием matlab.io.hdf4.sd.create функция. Эта функция соответствует стандартной программе SD API, SDcreate. The 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 функция. Эта функция соответствует стандартной программе SD API, SDwritedata. The 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 функция, которая соответствует стандартной программе SD API, 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 функция. Эта функция соответствует стандартной программе SD API, SDendaccess. Перед закрытием файла необходимо закрыть доступ ко всем наборам данных и HDF4 файлу.

sd.endAccess(sdsID);

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

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

sd.close(sdID);

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

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

MATLAB® Поддержки служебных функций, которые облегчают использование HDF4 в окружение MATLAB.

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

Используйте функцию шлюза к утилите MATLAB HDF4 API, 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 за один вызов с помощью функции шлюза к утилите HDF4 MATLAB API, hdfml. Укажите имя closeall стандартная программа как аргумент:

hdfml('closeall')

См. также

| | | | | |

Похожие темы