C# 調用 matlab兩種方法實現

C# 調用 matlab兩種方法實現

系統環境,win7 32+ VS2010 + MatlabR2012b

 

一、首先,在matlab中編輯函數。函數代碼如下:

function [ V ] = cubic(L )  %一個輸入參數L,一個輸出參數V ,函數名cubic

V=L^3

end

二、在matlab命令行中 執行mbuild –setup命令,選擇VS2010 C++編譯器。

三、在matlab命令行中,執行deploytool命令調出圖形界面來編譯對應的組件。這裏主要用com組件和.net

四、編譯步驟,新建工程名稱,添加類,添加M文件的步驟來操作,添加好後build可以生成.dll文件。。

五、C#調用

1、把matlab中生成com組件的dll文件拷貝到當前項目文件目錄下,添加引用,然後調用。

private voidbutton1_Click(object sender, EventArgs e)

        {

           cub2.Class1 c1 = new cub2.Class1();

           object v=0;

           c1.cubic(1,ref v, int.Parse(this.textBox1.Text.Trim()));

           MessageBox.Show(v.ToString());

        }

2matlab中生成.netassembly類型的dll拷貝到當前目錄下,添加引用,然後調用。這裏注意matlab中一個方法被重載爲5個,特別是數據類型的轉換存在問題。

private void button1_Click(object sender,EventArgs e)

        {

            int v=0;

            MWNumericArray m_output = newMWNumericArray(v);

            MWNumericArray m_input = newMWNumericArray(int.Parse(this.textBox1.Text.Trim()));

            cub3.sgx sgx = new cub3.sgx();

            m_output =(MWNumericArray)sgx.cubic(m_input);

            double[,] result=(double[,])m_output.ToArray();

           MessageBox.Show(result[0,0].ToString());                       

        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章