Работа с mxArrays

Библиотека интерфейсов 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 к оператору ссылки.

Чтение структур из MAT-файла

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 

Чтение массивов ячеек из MAT-файла

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

Похожие темы