Каждый 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);
Задайте значения возврата в том же порядке, в котором они появляются в качестве выходных аргументов. Статус возврата значение функции всегда задается как последний возврат значение.