C# matalb混合编程/matlab神经网络工具箱无法编译/C#调用matlab工具箱函数“未定义与 'struct' 类型的输入参数相对应的函数 'sim'”
【作者吐槽】辗转反侧解决C#调用matlab调用神经网络工具箱的问题,一致报错,内容详情如下:
.. MWMCR::EvaluateFunction error ... 未定义与 'struct' 类型的输入参数相对应的函数 'sim'。 Error in => testSim.m at line 8. ... Matlab M-code Stack Trace ... at file C:\Users\ADMINI~1\AppData\Local\Temp\Administrator\mcrCache9.0.1\BP_BEF0\BP\testSim.m, name testSim, line 8.
首先申明,调用matlab自带的函数都没有问题,比如一些计算平均数、普通的画图函数等试过了没有问题,但是调用工具箱的神经网络函数就一直报错,没找到原因。后来官方解释是这样的:
【笔者提供一些非神经网络工具箱函数的混合编程的过程】
笔者的编程环境: VS2012 、matlab2016a 、64位
1.安装MCRInstall.exe文件,这个文件一般在安装目录:MATLAB7\toolbox\compiler\deploy\win64
如果你的平台是是win32的,那么就在win32里面找;
MCRInstall.exe安装能够提供编译后的matlab底层的运行组件,方便外界调用。
2.在matlab命令行输入deploytool,编译.net dll
具体编译步骤可以看
[CSDN.FXM720505的专栏.2016.2018-7-22] https://blog.csdn.net/fxm720505/article/details/51382547
4.最后将生成的dll文件导入到c#中,注意需要将添加MWArray.dll,其路径如下(%matlabpath%\toolbox\dotnetbuilder\bin\win32\v2.0)
在c#中输入以下代码 :
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
[CSDN.FXM720505的专栏.2016.2018-7-22] https://blog.csdn.net/fxm720505/article/details/51382547