终于实现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#中就出现了我们所想得到的图形,呵呵 |