用MATLAB编译.dll文件给C#调用时,怎么把MATLAB中的.mat文件和.m文件一起编译进去。

我写了一个m函数文件,因为其中涉及神经网络预测,将训练好的网络存为了.mat文件,运行程序时需要调用。现在想在C#中实现函数功能,不知道怎么把m文件和mat文件一起编译成dll文件,求高手解答。我试过很多次了,MATLAB中自带的deploytool编译工具只能编译m文件,不能识别mat文件,怎么办,求具体过程。
比如:.m文件函数是:
funciton result=func(x1,x2)
Load net.mat;
p=[x1,x2];
y=sim(net,p);
result=y;
end;
C#中调用编译好的.dll文件语句是:
DotNetClass myclass=new DotNetClass();
之后该怎么编呢?我在网上查了资料,是不是需要用MWArray和MWNumericArray方法?还是说这样:
string adress=“D:\\Matlab\net.mat”;
myclass.func(adress) 这样写对吗?那输入参数和输出参数怎么办呢?下面又怎么写?

你可以在.m函数文件中编写调用.mat的语句,函数输入变量设为一字符变量,c#中编写代码将文件路径作为调用编译好的.dll文件中函数方法的输入参数啊。这样就不需要将.mat数据文件一起编译,同样实现对数据的分析。不知道对您有用不。追问

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-08
一般来说接口不怎么好弄的。c里好像只有数组概念没有矩阵概念?直接调用矩阵有问题,至少我用过VB这个问题解决不了。所以你可以用个笨办法,建个excel,matlab数据写入,c在读出。看你上面说的数据类型的问题,通过数据写入读取也就不是问题了。当然这是你对精度要求不高情况下。追问

不好意思,我说的是C#语言,不是C语言,而且我需要读取的不是普通的存储矩阵数据的.mat文件,它是训练好的神经网络数据,MATLAB中默认名称为net.mat,它存储的不是简单的数据矩阵,是关于神经网络的一些特性描述,所以应该不能用excel来存储。你说的方法解决不了这个问题。

相似回答