libstruct

Преобразуйте структуру MATLAB в структуру C-стиля для использования с разделяемой библиотекой C

Описание

S = libstruct(structtype) создает NULL указатель на MATLAB® libstruct объекты.

пример

S = libstruct(structtype,mlstruct) создает указатель, инициализированный к mlstruct.

Примеры

свернуть все

Вызовите addStructFields функция путем создания переменной типа c_struct.

Загрузите shrlibsample библиотека в matlabroot\extern\examples\shrlib папка, которая содержит c_struct ввод.

if ~libisloaded('shrlibsample')
   addpath(fullfile(matlabroot,'extern','examples','shrlib'))
   loadlibrary('shrlibsample')
end

Отобразите функциональные подписи для shrlibsample и ищите список addStructFields запись.

libfunctionsview shrlibsample
double addStructFields(c_struct)

Входной параметр является указателем на c_struct тип данных.

Создайте структуру MATLAB, sm.

sm.p1 = 476;   sm.p2 = -299;   sm.p3 = 1000;

Создайте libstruct объект sc от c_struct ввод.

sc = libstruct('c_struct',sm)

Поля sc содержите значения структуры MATLAB, sm.

Вызовите addStructFields функция.

calllib('shrlibsample','addStructFields',sc)
ans =
    1177

Чтобы вымыться, сначала очистите libstruct объект, и затем разгружает библиотеку.

clear sc
unloadlibrary shrlibsample

Входные параметры

свернуть все

C структура задан в разделяемой библиотеке.

Структура MATLAB раньше инициализировала поля в S.

Типы данных: struct

Выходные аргументы

свернуть все

Указатель, возвращенный как MATLAB libstruct объект.

Ограничения

  • Используйте с библиотеками, которые загружаются с помощью loadlibrary функция.

  • Можно только использовать libstruct функция на скалярных структурах.

  • При преобразовании структуры MATLAB в libstruct объект, структура должна придерживаться требований, перечисленных в Требованиях Аргумента Структуры.

Советы

  • Если функция в разделяемой библиотеке имеет аргумент структуры, используйте libstruct создать аргумент. libstruct функция создает структуру C-стиля, которую вы передаете функциям в библиотеке. Вы обрабатываете эту структуру в MATLAB, когда вы были бы истинная структура MATLAB.

Представлено до R2006a