C#調用matlab函數詳細步驟和例程



       在項目過程中需要在ASP.NET頁面顯示三維效果的曲面圖,因C#中沒有相關的控件(暫時沒找到),需要調用其他軟件實現此功能,實現的方法有多種,這裏只介紹在C#中調用matlab函數,實現繪製三維圖的功能。當然,matlab還有強大的數據處理能力,如果在C#中涉及到處理大量數據,也可以通過該方法調用matlab函數。

       系統平臺:matlab2013a(破解的2013b未破解完全,謹慎使用)

                           VS2010

       注意:將來使用調用matlab的C#程序時候,可以不安裝matlab程序,但必須安裝matlab的運行環境,即MCRinstall文件,這個在matlab安裝包裏面一般可以找到。

       操作步驟:1.在matlab的command窗口輸入mbuild(留空格)-setup,選擇編譯器,這裏要選擇我們打算調用matlab的軟件,即VS2010;然後在command窗口輸入deploytool命令,同樣選擇編譯環境爲VS2010。之後,會彈出下圖1所示界面。注意:這裏的Name就是C#裏要調用的dll文件名,Location就是查找dll文件的位置,Type要選擇.NET Asembly,點擊OK按鈕。

 

圖1

                        2.出現下圖所示的頁面,點擊Add Class添加類,這裏注意修改默認的Class類名,Class類名就是我們在C#中要使用的類名稱,自己要記下來。修改完類名點擊Add file添加我們要使用的m文件,如圖3所示,這裏m文件的名稱就是我們在C#中要使用的類的成員函數,也要把這個名稱記下來。之後,點擊圖3右上方的編譯按鈕,就會出現圖4的頁面,等待出現build finished即可(時間會有點長,要5-10分鐘)。這樣,我們在MATlab環境下的操作就完成了,請攝像機把鏡頭切換到VS2010環境中~~~

圖2

圖3

圖4

                               3.打開C#程序的“設計”頁面,在“解決方案資源管理器”裏添加“引用”,打開圖5所示的界面,這裏至少要添加兩個dll文件,一個是MWArray.dll(文件目錄爲D:\MATLAB\R2011b_x64\toolbox\dotnetbuilder\bin\win64\v2.0),另一個是我們自己生成的dll文件(目錄在圖1Location中指定的)。

圖5

                           4.在ASP.NET的***.aspx.cs頁面下,要注意添加dll文件的至少2個命名空間,一個是using MathWorks.MATLAB.NET.Arrays;另一個是我們自己生成的dll文件的命名空間,如using TuShowOut;

                           一個簡單的例程:建議先使用一個最簡單的例程測試一下我們前面所設置的編譯環境是否正確,不要直接調用項目中用到的複雜的matlab函數。

                           1.matlab程序如下:

function y=raicos(t)
result=2t;
end

                2.在C#中調用matlab的函數,使用上面的4個步驟,添加引用之後,C#程序如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MathWorks.MATLAB.NET.Arrays;//系統dll文件
using Demodll;//自己生成的dll文件
namespace WebApplication1
{
    public partial class WebForm26 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            demo h = new demo();//demo爲class名稱,h爲定義的成員函數
            MWArray x;//定義x爲矩陣變量,將普通數轉化爲matlab能識別的類型
            x = demo.raicos((MWArray)i);//調用matlab裏的raicos函數
        }
    }
}











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