Библиотека интерфейсов MAT-файлов позволяет вам получить доступ к MATLAB® массивы (тип mxArray
) в MAT-файле. Чтобы работать непосредственно с mxArray
в приложении C/C + + используйте функции в библиотеке Matrix.
Можно найти примеры для работы с mxArray
введите в matlabroot
/extern/examples/mex
и matlabroot
/extern/examples/mx
папки. В следующих разделах показаны примеры кода С, основанные на этих примерах MEX, для работы с камерами и структурами. Примеры показывают, как считать массивы камер и структур и отображать информацию на основе типа mxArray
внутри каждого элемента массива.
Если вы создаете приложение из одного из примеров MEX, вот несколько советов по адаптации кода к автономному приложению.
Пример MAT-файла, matdgns.c
, показывает, как открыть и считать MAT-файл. Для получения дополнительной информации о примере смотрите Чтение MAT-файла на C/C + +.
Пример MEX, explore.c
, имеет функции для чтения любого типа MATLAB с помощью mxClassID
функция. Дополнительные сведения о примере см. в разделе Использование типов данных.
В некоторых примерах MEX используются функции, такие как mexPrintf
, из библиотеки MEX API на C, libmex
. Вам не нужно использовать эти функции для работы со mxArray
но если ваша программа вызывает любой из них, необходимо установить ссылку на библиотеку MEX. Для этого добавьте libmex.lib
к оператору ссылки.
The matreadstructarray.c
пример основан на analyze_structure
функция в explore.c
. Для простоты в этом примере обрабатываются только действительные элементы типа double
; см. explore.c
пример для проверки ошибок и обработки других типов.
Чтобы увидеть код, откройте файл в РЕДАКТОРА MATLAB.
После создания программы запустите приложение на MAT-файле, testpatient.mat
.
Во-первых, создайте структуру patient
и сохраните его.
patient(1).name = 'John Doe'; patient(1).billing = 127.00; patient(1).test = [79 75 73; 180 178 177.5; 172 170 169]; patient(2).name = 'Ann Lane'; patient(2).billing = 28.50; patient(2).test = [68 70 68; 118 118 119; 172 170 169]; save testpatient.mat
Вычислим общую сумму billing
поле.
!matreadstruct testpatient.mat patient billing
Total for billing: 155.50
The matreadcellarray.c
пример основан на analyze_cell
функция в explore.c
.
Чтобы увидеть код, откройте файл в РЕДАКТОРА MATLAB.
После создания программы запустите приложение на MAT-файле, testcells.mat
.
Сначала создайте три переменные камер и сохраните.
cellvar = {'hello'; [2 3 4 6 8 9]; [2; 4; 5]}; structvar = {'cell with a structure'; patient; [2; 4; 5]}; multicellvar = {'cell with a cell'; cellvar; patient}; save testcells.mat cellvar structvar multicellvar
Отобразите mxArray
введите для содержимого камеры cellvar
.
!matreadcell testcells.mat cellvar
0: string 1: numeric class 2: numeric class