naterliu 发表于 2011-6-20 18:31

C#调用Matlab出错(“未定义函数或方法”)

有问题请教:
自己的matlab预测函数写成.m文件如下所示:
% matlab中的.m文件
function = TestArmax(data,orders)
Data = iddata(data');
m = armax(Data,orders);
AIC = aic(m);
% 在Matlab中能正常运行,举例:data = ; orders = ;m=armax(Data,orders) % 能正确输出

用deploytool工具中.net Component将上述.m文件打包生成.dll文件,在C#中调用出现下述错误:
MWMCR::EvaluateFunction error: Undefined function or method 'armax' for input arguments of type 'iddata'.Error in =>TestArmax.m at 4.

个人分析:错误提示是未定义armax函数,而armax函数作为matlab本身库函数,在Matlab中可以直接使用,如果将Matlab库文件中的armax.m也添加到.dll中时,由于armax函数中本身也调用了其他的库函数,运行C#时会在armax.m文件中报类似错误,“未定义XX函数或方法”。实际上Matlab中很多函数都与其他库函数关联,如此一个一个.m文件的查找并添加到.dll中,实在是繁杂而又蛮干。

个人感觉应该能在C#中添加一个Matlab库函数集合的引用之类的文件,但在网上又找不到相关的信息。

希望能指点一二,感激不尽!

wgwhl 发表于 2011-6-25 21:14

naterliu 发表于 2011-6-20 18:31 static/image/common/back.gif
有问题请教:
自己的matlab预测函数写成.m文件如下所示:
% matlab中的.m文件


找不到环境变量的问题,将 \bin\win32 目录下所有的文件拷贝到你的 C# exe文件的相同目录下,应该可以解决你的问题
页: [1]
查看完整版本: C#调用Matlab出错(“未定义函数或方法”)