終於實現c#調用matlab函數(ZZ)

來源:互聯網
上載者:User
終於實現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#中就出現了我們所想得到的圖形,呵呵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.