我在开发一个.net后端时,有功能需要通过调用matlab函数实现。我发现过程还是比较繁琐的,所以我打算分享一下我的实现过程。
visual studio 2019, MATLAB R2023a
1.首先在matlab命令行窗口输入deploytool

2.选择Library Compiler

3.按照图片中的1、2、3步骤进行操作。其中Class Name是可以进行更改的,2中添加的就是你需要导出的matlab函数。

4.找到导出的文件夹后,在子文件夹中找到能对应你的导出名的dll文件。

1.右键选择 “添加引用”。

2.选择浏览,找到你从matlab中导出的DLL文件,将其添加到引用中去。然后还需添加一个 MWArray.dll 用于C#和MATLAB之间的数据传递。其路径是:MATLAB安装的文件夹/ toolbox / dotnetbuilder / bin / win64 / v4.0;然后在代码中调用你写的matlab方法,其中类名就是步骤三中的Class Name。

3.右键 “解决方案”,点击属性。然后在配置属性中将平台改为x64。因为matlab生成的dll文件只能在x64的cpu平台下才能正常运行。

4.将你的IIS Express也改为x64。选择工具->选项->项目和解决方案->Web项目。

如果你需要将项目在其他电脑上运行,那台电脑上需要安装Matlab运行环境(MATLAB Runtime),无需安装完整MATLAB。注意需要和你发布dll的matlab版本相对应。MATLAB Runtime下载地址:https://ww2.mathworks.cn/products/compiler/matlab-runtime.html。