Экспорт в файлы 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. 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. 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'полярный, и '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

Используйте функцию шлюза для сервисного 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')

Смотрите также

| | | | | |

Похожие темы