嗨,我想知道如何将 MATLAB 用作 C 程序的外部求解器。特别是在我的代码中,我希望解决几个 Ax=b 形式的线性系统。
我听说要采用另一种方式,即在 MATLAB 例程中调用 C 函数使用 MEX 文件。但我也不确定如何使用 Mex 文件。
谢谢
实际上,MEX 文件允许您在 Matlab 程序中包含 C 代码,例如,如果您想在 Matlab 中使用外部 C 库。
您想要做的是使用 Matlab 引擎: http: //www.mathworks.com/help/techdoc/matlab_external/f29148.html
作为替代方案,您可以使用纯粹用 C 语言编写的线性代数库,例如 LAPACK 和 BLAS。(www.netlib.org)
正如 Lagerbaer 指出的那样,您可以使用 matlab 引擎。然而,有时只调用 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 中测试所有内容。