MATLAB® возвращает указатели на структуры. Возврат значений не поддерживается.
Вложенные структуры или структуры, содержащие указатель на структуру, не поддерживаются. Однако MATLAB может получить доступ к массиву структур, созданных во внешней библиотеке.
При передаче структуры MATLAB во внешнюю библиотечную функцию имена полей должны удовлетворять следующим требованиям.
Каждое имя поля MATLAB должно совпадать с именем поля в определении структуры библиотеки.
Структуры MATLAB не могут содержать поля, не входящие в определение структуры библиотеки.
Если структура MATLAB содержит меньше полей, чем определено в структуре библиотеки, MATLAB устанавливает неопределенные поля в нуль.
Имена полей зависят от регистра. Например, предположим, что библиотека mylib содержит функцию myfunc со следующим определением структуры.
struct S {
double len;
};Имя поля len. Если вы передаете структуру, в myfunc с именем поля LenMATLAB отображает ошибку.
S.Len = 100; calllib('mylib','myfunc',S)
struct Имена полейКогда MATLAB загружает struct C определение, имена полей в MATLAB не зависят от регистра. Для примера при загрузке библиотеки, содержащей следующее определение, MATLAB не создает двух полей.
struct S {
double Num;
double num;
};