2015-04-14 1 views
0

У меня есть запрос новичков, но я буду очень благодарен за вашу помощь: Может кто-нибудь написать для меня короткий шаблон mexFunction, который я могу добавить скрипт cpp , а входы и выходы mexFunction взаимодействуют с функциями cpp?C++ -> Matlab - mexFunction template

mexFunction (выходной массив, входной массив) {

действия, чтобы использовать функции C++ // краткое объяснение действия, чтобы извлечь полученный вывод // краткое объяснение

}

Я еще не получил синтаксис C++, и я не нашел ни одного из учебников там очень полезным (я сделал очевидный поиск Google :). Я пытаюсь оценить некоторый код на C++ с помощью matlab, и здесь я в темноте.

Вы помогаете с пониманием! :)

ответ

0

Существует достаточно ресурсов для начала работы с использованием функций MEX. Тем не менее вы хотели сразу найти ответы/ссылки/коды/материалы отсюда (честная идея - к сожалению, вы можете подавить голоса). Для того, чтобы ответить вам и получить хороший старт ::

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 

Только типа один данные в MEX: mxArray (В некотором смысле, это делает жизнь проще, так как это уменьшает количество типов данных, что вам нужно помню, но это не означает, что вы должны быть осторожны, и не делать никаких предположений о формате содержимого массива.)

чтобы получить доступ к данным в пределах mxArray, вам необходимо получить указатель его

double *a; 
    a = mxGetPr(phrs[0]); 

Чтобы проверить, является ли данный mxArray содержит двойную точность поплавки, используйте:

if (!mxIsDouble(prhs[0])) { 
mexErrMsgTxt("Input should be double.\n"); 
} 

Чтобы дать представление о том, а не только со ссылкой на некоторые ссылки, я пытался объяснить вам. Надеюсь, это помогло.

Некоторые ссылки:

How to create mex

Kind of complete reference (pdf file)

+0

Спасибо за ваши ссылки, но вы утверждаете там yourselft, что знакомство с C++ предполагается, и, как я сказал, что это не так со мной. –