本文探讨了在C#中使用MATLAB函数的几种方案,主要目的是为了在C#项目中调用MATLAB函数。
* **ArrayFire/Armadillo:** 通过C++库对MATLAB函数进行逐句翻译,编译成DLL,效率最高,但需要硬件支持。
* **Octave/Python:** 将MATLAB代码转换为Octave或Python,工作量较小,效率尚可。其中,Octave可以通过`mkoctfile`编译DLL,`Octave.NET`提供.NET拓展包,支持直接在C#中运行Octave代码,包括基础运算、绘图、包加载和调用外部`.m`文件。
* **MATLAB Compiler:** 将MATLAB函数编译为DLL或EXE,需要依赖MCR,调用前需启动引擎,影响效率。打包MATLAB函数需要使用MATLAB的Library Compiler,并引用生成的DLL和`MWArray.dll`。