Библиотека Интерфейса MAT-файла позволяет вам доступ массивы MATLAB® (введите mxArray
) в MAT-файле. Чтобы работать непосредственно с mxArray
в приложении C/C++, используйте функции в Матричной Библиотеке.
Можно найти примеры для работы с типом 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
, от API MEX C
libmex
. Вы не должны использовать эти функции, чтобы работать с mxArray
, но если ваша программа вызывает какого-либо из них, необходимо соединиться с Библиотекой MEX. Для этого добавьте libmex.lib
в оператор ссылки.
Пример 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
Пример 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