声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1831|回复: 1

[编程技巧] C#调用Matlab出错(“未定义函数或方法”)

[复制链接]
发表于 2011-6-20 18:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有问题请教:
自己的matlab预测函数写成.m文件如下所示:
% matlab中的.m文件
function [AIC] = TestArmax(data,orders)
Data = iddata(data');
m = armax(Data,orders);
AIC = aic(m);
% 在Matlab中能正常运行,举例:data = [1,2,3,4,5,6,7,8,3,2,4,6,7,4,3,3,2,3,4,4]; orders = [1,1];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库函数集合的引用之类的文件,但在网上又找不到相关的信息。

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

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2011-6-25 21:14 | 显示全部楼层

找不到环境变量的问题,将 \bin\win32 目录下所有的文件拷贝到你的 C# exe文件的相同目录下,应该可以解决你的问题
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 13:23 , Processed in 0.057582 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表