poster
2019-12-10, 20:48
嗨,我想知道如何从C程序中将MATLAB用作外部求解器。特别是在我的代码中,我希望解决Ax = b形式的几个线性系统。
我听说可以走另一种方式,即在MATLAB例程中调用C函数使用MEX文件,但我也不确定如何使用Mex文件。
谢谢
回答:
您可以使用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中测试所有内容。
更多&回答... (https://stackoverflow.com/questions/4289654)
我听说可以走另一种方式,即在MATLAB例程中调用C函数使用MEX文件,但我也不确定如何使用Mex文件。
谢谢
回答:
您可以使用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中测试所有内容。
更多&回答... (https://stackoverflow.com/questions/4289654)