Сопоставить HDF4 с синтаксисом MATLAB

Каждый HDF4 API включает много отдельных стандартных программ, которые вы используете для чтения данных из файлов, записи данных в файлы и выполнения других связанных функций. Например, API HDF4 Scientific Data (SD) включает отдельные стандартные программы C для открытия (SDopen), закрыть (SDend) и считайте данные (SDreaddata). Для SD API и HDF-EOS GD и SW API, MATLAB® предоставляет функции, которые сопоставляются с отдельными стандартными программами C в библиотеке HDF4. Эти функции реализованы в matlab.io.hdf4.sd, matlab.io.hdfeos.gd, и matlab.io.hdfeos.sw пакеты. Для примера SD API включает в себя стандартную программу C SDendaccess чтобы закрыть HDF4 набор данных:

status = SDendaccess(sds_id); /* C code */

Чтобы вызвать эту стандартную программу из MATLAB, используйте функцию MATLAB, matlab.io.hdf4.sd.endAccess. Синтаксис аналогичен:

sd.endAccess(sdsID)

Для остальных поддерживаемых HDF4 API, MATLAB предоставляет одну функцию, которая служит шлюзом для всех стандартных программ в конкретном HDF4 API. Для примера, HDF-аннотации (AN) API включает в себя стандартная программа C ANend для завершения доступа к интерфейсу AN:

status = ANend(an_id); /* C code */

Чтобы вызвать эту стандартную программу из MATLAB, используйте функцию MATLAB, связанную с API AN, hdfan. Вы должны указать имя стандартной программы, минус аббревиатура API, как первый аргумент и передать любые другие необходимые аргументы в стандартную программу в том порядке, в котором они ожидаются. Для примера,

status = hdfan('end',an_id);

Некоторые HDF4 стандартных программ API используют выходные аргументы для возврата данных. Поскольку MATLAB не поддерживает выходные аргументы, необходимо задать эти аргументы как возвращаемые значения.

Для примера, ANget_tagref стандартная программа возвращает тег и ссылочный номер аннотации в двух выходных аргументах, ann_tag и ann_ref. Вот код С:

status = ANget_tagref(an_id,index,annot_type,ann_tag,ann_ref);

Чтобы вызвать эту стандартную программу из MATLAB, измените выходные аргументы на возвращаемые значения:

[tag,ref,status] = hdfan('get_tagref',AN_id,index,annot_type);

Задайте значения возврата в том же порядке, в котором они появляются в качестве выходных аргументов. Статус возврата значение функции всегда задается как последний возврат значение.