Спецификация API загрузки данных
API загрузки данных (интерфейс прикладного программирования) можно использовать для записи собственной функции загрузки данных, подключения этих функций к панели инструментов и последующего использования данных, загруженных этими функциями в панели инструментов. Для этого необходимо выполнить несколько этапов, как описано ниже. Пример см. в разделе xregReadConcerto.m (в mbctools каталог).
Прототип функции данных
Функция для успешной загрузки данных имеет следующий прототип:
[OK, msg, out] = dataLoadingFcn(filename, protoOut)
Входные аргументы
filename - полный путь к загружаемому файлу.
protoOut является пустой структурой с полями, ожидаемыми в аргументе return out. Это позволяет легко расширить API загрузки данных без необходимости изменения функций загрузки данных при изменении панели инструментов.
Выходные аргументы
Первый возвращаемый аргумент, OK, позволяет функции сигнализировать, что она успешно загрузила файл данных. Значение 1 указывает на успех и 0 - на отказ. Если функция не работает, она может вернуть сообщение, msg, для указания причины сбоя. Это сообщение отображается в диалоговом окне предупреждения в случае сбоя функции. Если функция успешно выполнена, аргумент return out содержит данные, необходимые для панели инструментов.
out.varNames - массив ячеек строк, содержащих имена переменных в данных (1 x n или n x 1).
out.varUnits - массив ячеек строк, содержащих единицы измерения, связанные с переменными в varNames (1 x n или n x 1). Этот массив может быть пустым, и в этом случае единицы измерения не определяются.
out.data - массив, содержащий значения переменных (m x n).
out.comment - необязательная строка, содержащая информацию о комментариях к данным.
Сдача на хранение функции данных
После записи функции необходимо проверить ее на панели инструментов с помощью mbccheckindataloadingfcn функция. Эта функция имеет следующий прототип:
OK= mbccheckindataloadingfcn(fun, filterSpec, fileType, filename)
fun - строка, которая является функцией, вызываемой для загрузки данных. Эта функция должна находиться в тракте MATLAB ®.
filterSpec является 1 x 2 массив ячеек элементов, содержащий расширения, загружаемые этой функцией, и описания этих файлов. Этот массив ячеек используется в uigetfile функция, например, {'*.m;*.fig;*.mat;', 'All MATLAB Files'} или {'*.m', 'M-files (*.m)'}. MBC пытается автоматически определить тип загружаемого файла на основе расширения. В случае дублирования внутренних номеров выбирается первый номер в списке; однако всегда можно переопределить автоматический выбор с помощью пользовательского выбора. При возникновении двусмысленности появится предупреждающее сообщение.
fileType - строка, описывающая тип файла, например, 'MATLAB file' или 'Excel file'.