2010-11-27 5 views
2

Привет, я хотел знать, как использовать MATLAB в качестве внешнего решателя из программы C. В частности, в моем коде я хочу решить несколько линейных систем вида Ax = b.Интерфейс MATLAB с программами на C/C++

Я слышал, что для другого пути, а именно для вызова функций C в процедуре MATLAB используются файлы MEX. Но я не уверен, как использовать файлы Mex.

Спасибо

+1

Возможный дубликат [Как позвонить по коду MATLAB с C?] (Http://stackoverflow.com/questions/1513583/how-to-call-matlab-code-from-c) – gnovice 2010-11-27 03:32:03

ответ

0

вы можете использовать двигатель matlab, как указывает Lagerbaer. Однако иногда это может быть удобно просто вызвать стиль командной строки matlab. Я часто использую это, когда не хочу связываться с mxArrays и т. Д., Или когда количество кода matlab, требующего выполнения, становится действительно большим. Псевдокод:

WriteArrayInMFormat("in.m", myInputNumbers); 
LaunchProcess("matlab", "-nodesktop -r \"myFunction('in.m')\" -logfile out.m"); 
ReadArrayInMFormat("out.m", myResult); 

Для меня это особенно полезно при тестировании вещи: вместо того, чтобы перекомпилировать программу C/C++ каждый раз, когда я что-то изменить, я просто применить все изменения в файле myFunction.m. В этот момент мне даже не нужна программа C, вместо этого все может быть протестировано в Matlab.

1

На самом деле, MEX файлы позволяют включать код C в программах Matlab, например, если вы хотите использовать внешние библиотеки C в Matlab.

То, что вы хотите сделать, это использовать Matlab Двигатель: http://www.mathworks.com/help/techdoc/matlab_external/f29148.html

В качестве альтернативы можно использовать линейные библиотеки алгебры, которые написаны исключительно в C, таких как LAPACK и BLAS. (www.netlib.org)

+0

Я видел эту ссылку раньше и я следил за командами, которые они упомянули ... Но они не сработали для меня .... 2 вопроса: – smilingbuddha 2010-11-28 20:20:51

Смежные вопросы