Спецификация API загрузки данных
Можно использовать API загрузки данных (интерфейс прикладного программирования), чтобы записать собственную функцию загрузки данных, подключить эти функции к тулбоксу и впоследствии использовать данные, загруженные этими функциями в тулбоксе. Для этого существует несколько этапов, которые необходимо выполнить, как описано ниже. Для получения примера см. xregReadConcerto.m
(в mbctools
директория).
Прототип функции данных
Функция для успешной загрузки данных имеет следующий прототип:
[OK, msg, out] = dataLoadingFcn(filename, protoOut)
Входные параметры
filename
- полный путь к загружаемому файлу.
protoOut
- пустая структура с полями, ожидаемыми в возвращаемом аргументе out
. Это позволяет легко расширить API загрузки данных без необходимости изменения функций загрузки данных при изменении тулбокса.
Выходные аргументы
Первый возвращаемый аргумент, OK
, позволяет функции сигнализировать, что она успешно загрузила файл данных. Значение 1 сигнализирует об успехе и 0 об отказе. Если функция прекращает работать, она может вернуть сообщение, msg
, указать причину отказа. Это сообщение отображается в диалоговом окне предупреждения в случае сбоя функции. Если функция успешна, возвращаемый аргумент 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'
.