| 終於實現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#中就出現了我們所想得到的圖形,呵呵 |