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 загружает C struct , имена полей в MATLAB не чувствительны к регистру. Например, при загрузке библиотеки, содержащей следующее определение, MATLAB не создает два поля.
struct S {
double Num;
double num;
};