声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 科学计算 matlab 查看内容

m函数生成com组件并在c#中调用

2015-11-3 11:25| 发布者: aspen| 查看: 998| 评论: 1|原作者: zxjaly|来自: 声振论坛

摘要: .net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言 今晚一直在***图用c#调用matlab,终于成功。 主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。
.net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言
今晚一直在***图用c#调用matlab,终于成功。
主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。

主要步骤如下:
1.建一个m文件(test.m)
例如:
functiontest(h,D)
forx=-10:0.1:10,
ifx>D
y=h;
holdon;
plot(x,y)
elseifx<-D
y=-h;
holdon;
plot(x,y)
else
y=h/(D*x);
holdon;
plot(x,y)
end
end

2.在matlab中输入comtool命令,就打开了matlabcombuilder,

点击file-newproject,新建一个工程,

在componentname里输入名字点击ok就行了。

然后点击project--Addfiles,将test.m添加入工程,

然后点Build-ComObject,就会在comtest\distrib\文件夹下生成一个test1_0.dll(它就
是做好的com组件),

Build时matlab已经自动将此dll在注册表中注册

我们还需做一个准备工作,进入/bin/win32目录下(matlabroot为你机器上
matlab安装的路径),打regsvr32mwcomutil.dll,即对mwcomutil.dll进行注册(这个dll
是matlab下作的任何com组件都要用到的dll),下面我们在其他编译器下调用时就可以用了。

3.c#下实现调用

新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用
,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0.dll,点选
择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择

然后编写程序

test.testclassClassst=newtest.testclassClass();
objectm=1,n=2;
st.test(m,n);
即可

然后在c#中就出现了我们所想得到的图形,呵呵
发表评论

最新评论

引用 glise 2005-10-29 08:53
转别人的调用经验

.net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言

今晚一直在***图用c#调用matlab,终于成功。

主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。

主要步骤如下:
1.建一个m文件(test.m)
例如:
  1. functiontest(h,D)
  2. forx=-10:0.1:10,
  3. ifx>D
  4. y=h;
  5. holdon;
  6. plot(x,y)
  7. elseifx<-D
  8. y=-h;
  9. holdon;
  10. plot(x,y)
  11. else
  12. y=h/(D*x);
  13. holdon;
  14. plot(x,y)
  15. end
  16. end
复制代码

2.在matlab中输入comtool命令,就打开了matlabcombuilder,

点击file-newproject,新建一个工程,

在componentname里输入名字点击ok就行了。

然后点击project--Addfiles,将test.m添加入工程,

然后点Build-ComObject,就会在comtest\distrib\文件夹下生成一个test1_0.dll(它就
是做好的com组件),

Build时matlab已经自动将此dll在注册表中注册

我们还需做一个准备工作,进入/bin/win32目录下(matlabroot为你机器上
matlab安装的路径),打regsvr32mwcomutil.dll,即对mwcomutil.dll进行注册(这个dll
是matlab下作的任何com组件都要用到的dll),下面我们在其他编译器下调用时就可以用了。

3.c#下实现调用

新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用
,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0.dll,点选
择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择

然后编写程序

test.testclassClassst=newtest.testclassClass();
objectm=1,n=2;
st.test(m,n);
即可

然后在c#中就出现了我们所想得到的图形,呵呵

查看全部评论(1)

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

GMT+8, 2024-5-10 06:17 , Processed in 0.083102 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部