MATLAB与C / C ++程序的接口

时间:2010-11-27 01:40:58

标签: c matlab mex

您好我想知道如何使用MATLAB作为C程序的外部求解器。特别是在我的代码中我希望 解决几个形式为Ax = b的线性系统。

我听说过另一种方式,即在MATLAB例程中调用C函数,使用MEX文件。但我不确定如何使用Mex文件。

谢谢

2 个答案:

答案 0 :(得分:1)

实际上,MEX文件允许您在Matlab程序中包含C代码,例如,如果您想在Matlab中使用外部C库。

你想要做的是使用Matlab引擎: http://www.mathworks.com/help/techdoc/matlab_external/f29148.html

作为替代方案,您可以使用纯粹用C语言编写的线性代数库,例如LAPACK和BLAS。 (www.netlib.org)

答案 1 :(得分: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中测试所有内容。