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