C#中调用matlab模块

如何在c#中调用matlab模块 
    昨天樊小弟bg大哥夜宵,托大哥我帮他解决在网页中调用matlab模块的问题,考虑到我毕业设计也是用matlab和c#,今天闲来无事,查阅了下资料,终于找到解决方法。写点东西以防以后找不到。
1.在matlab中编写.m文件。 
    例如:创建add.m
    function [c]=add(a,b)
         c=a+b;
    end
2.在matlab中生成com组件 
a)安装c/c++编译器mbuild -setup(可能要先运行mex -setup) 
     Select a compiler:
     [1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2008b\sys\lcc
     [2] Microsoft Visual C++ 2008 in D:\Program Files\Microsoft Visual Studio 9.0
     [1]是matlab自带的编译器,ms不够强悍,我是机子上装vs2008选[2],具体根据自己情况选择。
     装好了以后就不用再装了。
b)生成com组件 
     matlab命令行窗口中运行deploytool,启动deployment tool
     新建project->选择matlab builder NE->选择generic com component->输入project名称"test",确定->add file->build the project 开始生成com组件,生成后会自动regsvr32 test_1_0.dll
     注:matlab 2007以前的版本使用comtool来生成com组件,之后的版本都没有comtool都是用deploytool.
3.在vs2008中调用com组件 
a)第一次使用时要注册 mwcomutil.dll。 
   在“运行”中输入regsvr32 matlab安装路径\bin\win32\mwcomutil.dll。
b)创建c#工程,在reference中添加生成的com组件 test_1_0.dll。 
c)添加需要调用的地方调用代码 
    test.testClass ts = new test.testClass();
    object c=0, a=1, b=1;//调用前需要先初始化包括输出在内的所有参数
    ts.add(1, ref c, a, b); //c前需要添加ref,1表示的应该是输出参数的个数(个人猜测)
    注:参数的类型必须是object,matlab函数function [c]=add(a,b)生成的对应的c#函数格式为void add(int i,ref object c,object a,object b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮特大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值