Для УСПОКОИТЕЛЬНОГО клиента, чтобы получить функциональные подписи функций MATLAB®, развернутых на MATLAB Production Server™ с помощью API открытия, необходимо встроить информацию о функциях MATLAB в файле JSON при упаковке развертываемого архива.
После добавления функций MATLAB, чтобы развернуться к приложению Production Server Compiler, в разделе Include MATLAB function signature file, нажимают кнопку Create File. Это действие создает шаблон файла JSON с именем
.<projectName>functionSignatures.json
Файл
является одним объектом JSON. Это содержит версию схемы и список функциональных объектов. Каждый функциональный объект содержит список объектов подписи, и каждый объект подписи содержит список объектов аргумента.<projectName>functionSignatures.json
Если ваши функции MATLAB передают
struct
или типы данных cell
, можно добавить их описания в файл JSON также.
Можно получить доступ к объектному файлу JSON с сервера при помощи Сервиса Открытия.
Версия схемы имеет значение, которое является строкой JSON в формате
<major#>.<minor#>.<patch#>
с каждым номером, заданным как неотрицательное целое число.
Функциональные объекты
Функциональные объекты автоматически наследовали свое имя от имени функций MATLAB, которые вы добавили в проект. Строка цели для функционального объекта наследована от функционального описания, предоставленного в функции MATLAB. Значение каждого функционального объекта является объектом подписи.
{
"functionName1": { signatureObj1},
"functionName2": { signatureObj2}
}
Объекты подписи
Объект подписи задает список аргументов ввода и вывода и поддерживаемых платформ для функции. Значение свойств является массивом объектов аргумента.
{
"functionName1":
{
"inputs": [ argumentObj1, argumentObj2 ]
}
}
Каждая подпись может включать следующие свойства.
Свойство Описание Тип данных JSON значения inputs
Список входных аргументов функции
Массив объектов аргумента
outputs
Список выходных аргументов функции
Массив объектов аргумента
Объекты аргумента
Объекты аргумента задают информацию для каждого из аргументов ввода и вывода.
{
"functionName1":
{
"inputs":
[
{"name":"in1", "type":["double"], "purpose":"<input 1 description>"},
{"name":"in2", "type":["logical"], "purpose":"<input 2 description>"}
]
}
}
Порядок, что входные параметры появляются в файле JSON, является значительным. Например, в вызове функции functionName1
, in1
должен появиться перед in2
.Каждый объект аргумента может включать следующие свойства.
Объект определения типа
Объект определения типа задает массивы ячеек и структуры. Это должно быть задано, только если любое из значений к объектам аргумента является ячейками или структурами. Сгенерированный шаблон файла JSON не имеет этого объекта по умолчанию, вы, как ожидают, добавите его если и, когда необходимый.
В схеме это обозначается с помощью имени
, _typedefs
и его значение являются именем одного или нескольких объекты структуры или ячейка. Тип совпадает с объектом аргумента.
Пример Использования Гомогенного Массива ячеек: Если функция MATLAB
sortinput
, принимает массив ячеек как вход и возвращает массив ячеек, как выведено, и каждая ячейка во входе состоит из структуры, ее представление JSON:
{
"_schemaVersion": "1.1.0",
"_typedefs" : {
"struct_names_scores_of_students": {
"purpose": "Names and scores of students",
"type": "struct",
"fields": [
{"name": "Name", "type": "char"},
{"name": "Score", "type": ["double","size=1,1"]}
]
},
"cell_student_information": {
"purpose": "Cell representing student information",
"type": "cell",
"elements": {
"type": "struct:struct_names_scores_of_students"
}
}
},
"sortinput": {
"inputs": [
{
"name": "unsorted_input",
"type": ["cell:cell_student_information"],
"purpose": "Unsorted list of students and their scores"
}
],
"outputs": [
{
"name": "sorted_output",
"type": ["cell:cell_student_information"],
"purpose": "Sorted list of students with respect to their scores"
}
]
}
}
Пример Использования Неоднородного Массива ячеек: Если функция MATLAB
organize
, принимает массив ячеек с длиной 3 содержащий символ, квадратную матрицу и строку, как введено, и возвращается, вектор удваивается, как выведено, его представление JSON:
{
"_typedefs": {
"cell_het_mydata": {
"purpose": "cell containing character, matrix, and string",
"type" : "cell",
"elements" : [
{ "type": ["char", "size=1,1"], "purpose": "cell element 1 is a character" },
{ "type": ["double", "size=N,N"], "purpose": "cell element 2 is a square matrix" },
{ "type": "char", "purpose": "cell element 3 is a string" }
]
},
"organize": {
"inputs": [
{
"name": "data",
"type": ["cell:cell_het_mydata","size=3,1"],
"purpose": "heterogenous cell array"
}
],
"outputs": [
{
"name": "numerator",
"type": "double",
"purpose": "result of function"
}
]
}
}
Похожие темы