终于实现c#调用matlab函数,ZZ - GIS的学习

终于实现c#调用matlab函数(ZZ)

终于实现c#调用matlab函数(ZZ)

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

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

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

主要步骤如下:

1.建一个m文件(test.m)

例如:

function test(h,D)

for x=-10:0.1:10,

if x>D

y=h;

hold on;

plot(x,y)

elseif x<-D

y=-h;

hold on;

plot(x,y)

else

y=h/(D*x);

hold on;

plot(x,y)

end

end

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

点击file-new project,新建一个工程,

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

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

然后点Build-Com Object,就会在comtest\distrib\文件夹下生成一个test1_0.dll(它就

是做好的com组件),

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

我们还需做一个准备工作,进入<matlabroot>/ bin/win32目录下(matlabroot为你机器上

matlab安装的路径),打regsvr32 mwcomutil.dll ,即对mwcomutil.dll进行注册(这个dll

是matlab下作的任何com组件都要用到的dll),下面 我们在其他编译器下调用时就可以用了

3.c#下实现调用

新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用

,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0 .dll,点选

择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择

然后编写程序

test.testclassClass st=new test.testclassClass();

object m=1,n=2;

st.test(m,n);

即可

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

posted on 2009-12-31 10:50 GIS的学习 阅读(9057) 评论(0) 编辑收藏举报