exponenta event banner

Работа с mxArray

Библиотека интерфейса MAT-File обеспечивает доступ к массивам MATLAB ® ( типmxArray) в MAT-файле. Для работы непосредственно с mxArray в приложении C/C + + используйте функции библиотеки матриц.

Вы можете найти примеры для работы с mxArray введите в поле matlabroot/extern/examples/mex и matlabroot/extern/examples/mx папки. В следующих разделах показаны примеры кода C, основанные на этих примерах MEX, для работы с ячейками и структурами. В примерах показано, как считывать массивы ячеек и структур и отображать информацию в зависимости от типа mxArray внутри каждого элемента массива.

Если вы создаете приложение из одного из примеров MEX, вот несколько советов по адаптации кода к автономному приложению.

  • Пример файла MAT: matdgns.c, показывает, как открыть и прочитать MAT-файл. Дополнительные сведения об этом примере см. в разделе Чтение MAT-файла на языке C/C + +.

  • Пример MEX: explore.c, имеет функции для чтения любого типа MATLAB с помощью mxClassID функция. Дополнительные сведения об этом примере см. в разделе Использование типов данных.

  • В некоторых примерах MEX используются такие функции, как mexPrintf, из библиотеки API C MEX, libmex. Нет необходимости использовать эти функции для работы с mxArray, но если программа вызывает любой из них, необходимо установить связь с Библиотекой MEX. Для этого добавьте libmex.lib в инструкцию link.

Считывание структур из MAT-файла

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-файла

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

Связанные темы