MATLAB与C/C的接口&x2B+;程序

MATLAB与C/C的接口&x2B+;程序,c,matlab,mex,C,Matlab,Mex,嗨,我想知道如何使用MATLAB作为C程序的外部解算器。特别是在我的代码中,我希望 求解数个Ax=b形式的线性系统 我听说另一种方法,即在MATLAB例程中调用C函数时使用MEX文件,但我也不确定如何使用MEX文件 谢谢实际上,MEX文件允许您在Matlab程序中包含C代码,例如,如果您想在Matlab中使用外部C库 您要做的是使用Matlab引擎: 作为替代方案,您可以使用纯用C编写的线性代数库,如LAPACK和BLAS。(www.netlib.org)正如拉格贝尔指出的那样,您可以使用ma

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

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


谢谢

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

您要做的是使用Matlab引擎:


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

正如拉格贝尔指出的那样,您可以使用matlab引擎。然而,有时只需调用matlab进程命令行样式就很方便了。当我不想弄乱MXArray等时,或者当需要执行的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)matlab必须是开放的,C代码才能使用matlab,还是matlab直接启动?2)如何编译代码:具体来说,我应该在制作文件?我使用Ubuntu 10.04