В следующих таблицах содержатся списки файлов исходного кода для создания примерных MEX-функций. Используйте эти примеры как начальная точка для создания собственных MEX-функций. Таблицы содержат следующую информацию.
Имя примера - ссылка, которая открывает исходный файл в MATLAB® Редактор для вашего удобства. Для создания исходных файлов MEX можно использовать любой редактор разработки кода.
Пример Подпапка - подпапка matlabroot
/extern/examples
содержащий пример. Используйте это имя подпапки при копировании файла в папку с возможностью записи.
Описание - описывает пример.
Дополнительные сведения - ссылка на тему, описывающую или использующую пример, или на функцию API, используемую в примере.
Используйте mex
команда для создания примеров. Убедитесь, что установлен поддерживаемый MATLAB компилятор. Чтобы проверить компилятор, выбранный для языка исходного кода lang
, тип:
mex -setup lang
Скопируйте файл в папку с возможностью записи на вашем пути с помощью следующего синтаксиса команды. filename
- имя примера, и foldername
- имя подпапки.
copyfile(fullfile(matlabroot,'extern','examples','foldername','filename'),'.','f')
Например, чтобы скопировать arrayProduct.c
, тип:
copyfile(fullfile(matlabroot,'extern','examples','mex','arrayProduct.c'),'.','f')
Чтобы создать пример MEX-функции в MATLAB или по приглашению операционной системы, используйте этот синтаксис команды. filename
- имя примера, и release-option
задает API, используемый в примере. Для получения дополнительной информации об API-интерфейсах MATLAB смотрите Выбор приложений MEX.
mex -v -release-option filename
Имя примера | Пример Подпапка | Описание | Дополнительная информация |
---|---|---|---|
arrayFillGetPr.c
| refbook
| Заполнение | Заполнение mxArray в файл MEX на C |
arrayFillSetData.c
| refbook | Заполнение | Заполнение mxArray в файл MEX на C |
arrayFillSetPr.c
| refbook | Заполнение | Заполнение mxArray в файл MEX на C |
arrayFillSetPrComplex.c | refbook | Заполнение | Заполнение mxArray в файл MEX на C |
arrayProduct.c | mex | Умножьте скалярное число раз 1xN матрицу. | Создайте исходный файл MEX на C |
arrayProduct.cpp | cpp_mex | То же, что и | C++ MEX-функции |
arraySize.c
| mex | Иллюстрируйте требования к памяти больших | Обработка больших mxArrays в файлах MEX на C |
complexAdd.F | refbook | Добавьте два сложных двойных массива. | |
convec.c convec.F
| refbook | Передайте комплексные данные. | Обработайте комплексные данные в файле MEX на C |
dblmat.F compute.F
| refbook | Использование Фортран- %VAL . | |
doubleelement.c | refbook | Используйте беззнаковые 16-битные целые числа. | Дескриптор 8-, 16-, 32- и 64-Bit данных в файле MEX на C |
explore.c | mex | Идентифицируйте тип данных переменного входа. | Работа с mxArrays |
findnz.c
| refbook | Используйте N-мерные массивы. | Манипуляции с многомерными числовыми массивами в файлах MEX на C |
fulltosparseIC.c fulltosparse.c fulltosparse.F , loadsparse.F
| refbook | Заполните разреженную матрицу. | Обрабатывайте разреженные массивы в файле MEX на C |
matsq.F | refbook | Передайте матрицы в Фортране. | |
matsqint8.F | refbook | Передайте недвойственные матрицы в Фортране. | |
mexatexit.c mexatexit.cpp | mex | Зарегистрируйте выходную функцию, чтобы закрыть файл данных. | Пример обработки файлов C++ |
mexcallmatlab.c | mex | Встроенный вызов MATLAB | |
mexcallmatlabwithtrap.c
| mex | Как захватить информацию об ошибке. | |
mexcpp.cpp | mex | Проиллюстрировать некоторые функции языка C++ в файле MEX, созданном с помощью API на C Matrix. | Пример класса C++ |
mexevalstring.c
| mex | Использовать mexEvalString для назначения переменных в MATLAB. | mexEvalString |
mexfunction.c | mex | Как использовать mexFunction . | mexFunction |
mxgetproperty.c | mex | Использовать mxGetProperty и mxSetProperty для изменения Color свойство графического объекта. | mxGetProperty и mxSetProperty |
mexgetarray.c | mex | Использовать mexGetVariable и mexPutVariable отслеживать счетчики в файле MEX и в глобальной рабочей области MATLAB. | mexGetVariable и mexPutVariable |
mexgetarray.cpp | То же, что и mexgetarray.c , использование matlab::engine::getVariable и matlab::engine::setVariable в MATLAB Data API. | Установите и получите переменный MATLAB из MEX | |
mexlock.c mexlockf.F | mex | Как заблокировать и разблокировать файл MEX. | mexLock |
mxcalcsinglesubscript.c | mx | Демонстрируйте индексирование матриц на основе MATLAB 1 по сравнению с индексацией на основе C 0. | mxCalcSingleSubscript |
mxcreatecellmatrix.c mxcreatecellmatrixf.F | mx | Создайте 2-D массивы ячеек. | Создайте 2-D Массивы ячеек в файле MEX на C |
mxcreatecharmatrixfromstr.c | mx | Создайте 2-D символьный массив. | mxCreateCharMatrixFromStrings |
mxcreatestructarray.c | mx | Создайте структуру MATLAB из структуры C. | mxCreateStructArray |
mxcreateuninitnumericmatrix.c | mx | Создайте неинициализированную | mxCreateUninitNumericMatrix |
mxgeteps.c mxgetepsf.F
| mx | Чтение MATLAB | mxGetEps |
mxgetinf.c | mx | Читать | mxGetInf |
mxgetnzmax.c
| mx | Отобразите количество ненулевых элементов в разреженной матрице и максимальное количество ненулевых элементов, которые она может хранить. | mxGetNzmax |
mxisclass.c | mx | Проверьте, является ли массив представителем заданного класса. | mxIsClass |
mxisfinite.c | mx | Проверяйте на NaN и бесконечные значения. | mxIsFinite |
mxislogical.c | mx | Проверьте, является ли переменная рабочей области логической или глобальной. | mxIsLogical |
mxisscalar.c | mx | Проверьте, является ли входная переменная скалярной. | mxIsScalar |
mxmalloc.c | mx | Выделите память для копирования | mxMalloc |
mxsetdimensions.c mxsetdimensionsf.F
| mx | Измените форму массива. | mxSetDimensions |
mxsetnzmax.c | mx | Перераспределите память для разреженной матрицы и сбросьте значения pr , pi , ir , и nzmax . | mxSetNzmax |
passstr.F
| refbook | Передайте матрицу символов C из Фортрана в MATLAB. | |
phonebook.c | refbook | Манипулируйте структурами и массивами ячеек. | Передайте структуры и массивы ячеек в файл MEX на C |
phonebook.cpp | cpp_mex | То же, что и phonebook.c , с использованием MATLAB Data API. | C++ MEX-функции |
revord.c revord.F | refbook | Скопируйте | Передайте строки в файле MEX на C |
sincall.c sincall.F , fill.F | refbook | Создание | |
timestwo.c timestwo.F | refbook | Демонстрация общего рабочего процесса файла MEX. | Передайте скалярные значения в файле MEX на C |
xtimesy.c xtimesy.F | refbook | Передайте несколько параметров. | |
yprime.c yprimef.F , yprimefg.F | mex | Решите простую задачу с тремя орбитами тела. | |
yprime.cpp | cpp_mex | То же, что и yprime.c , с использованием MATLAB Data API. | C++ MEX-функции |
Примеры в следующей таблице вызывают функцию LAPACK или BLAS с помощью функции C MEX. Эти примеры ссылаются на одну или обе библиотеки Фортран mwlapack
и mwblas
. Чтобы создать MEX-функцию, следуйте инструкциям в разделах, перечисленных в столбце Дополнительная информация.
Имя примера | Пример Подпапка | Описание | Дополнительная информация |
---|---|---|---|
dotProductComplex.c | refbook | Обработайте тип комплексного возврата ФОРТРАН для функции, вызываемой из файла MEX на C. | Handle Комплексный Тип Возврата Фортран - dotProductComplex |
matrixDivide.c | refbook | Вызовите функцию LAPACK. | Сохраните входные значения от изменения |
matrixDivideComplex.c | refbook | Вызовите функцию LAPACK с комплексными номерами. | Передайте Комплексные Переменные - matrixDivideComplex |
matrixMultiply.c | refbook | Вызовите функцию BLAS. | Передайте аргументы в функции ФОРТРАН из программ на C/C + + |
utdu_slv.c | refbook | Используйте LAPACK для симметричной неопределенной факторизации. | Симметричная неопределенная факторизация с использованием LAPACK - utdu_slv |