這篇是要分享如何從好用的matlab
編輯轉譯成.Net可以呼叫的dll
版本 :
(1) Matlab R2011a
(2) Visual Studio 2010 C#
(3) 系統 : Windows 7 64bits
step 1 : 首先我們先創建一個 .m 檔,程式碼如以下部分:
這是一個簡單的將數值(input) , 乘2之後,回傳結果的一個Procedure。
step2 :接下來在Matlab 的 Command Windows 下。輸入 deploytool 。
step3 : 輸入 Project Name (此處為Twice,以及選擇Type: .Net Assembly)
step4 : 然而在Build 視窗下,創建Class (Twice)並且加入剛剛寫好的twice.m 檔
step5: 記得在 Package 視窗下 ,也要加入 twice.m檔。
step6: 做好一切準備之後,開始建置吧!
step 7: 開啟 Visual Studio,並且建立一個 C# Console 應用程式
再參考部分加入剛剛創建好的.DLL 檔。(路徑位於專案資料夾裡面)
(e.g) C:\Twice\src\twice.dll
step 8: 並且加入Matlab 的型態變數陣列.dll 檔
預設路徑: (C:\Program Files (x86)\MATLAB\R2012b\toolbox\dotnetbuilder\bin\win32\v2.0)
step 9: 在開頭引用 以下宣告。
using twice;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
step10 :撰寫程式碼部分。
int i = 5;
Twice c = new Twice();
MWArray result = c.twice((MWArray)i);
System.Console.WriteLine(Convert.ToInt16(result.ToString()) + 5);
System.Console.ReadKey();
Twice c = new Twice();
MWArray result = c.twice((MWArray)i);
System.Console.WriteLine(Convert.ToInt16(result.ToString()) + 5);
System.Console.ReadKey();
step11 : 可以看到結果為輸入5之後 ,透過twice.m 輸出為10之後再加5之後的結果。
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using twice;
- using MathWorks.MATLAB.NET.Arrays;
- using MathWorks.MATLAB.NET.Utility;
- namespace MatlabToCsharpDotNetLibSample
- {
- class Program
- {
- static void Main(string[] args)
- {
- int i = 5;
- Twice c = new Twice();
- MWArray result = c.twice((MWArray)i);
- System.Console.WriteLine(Convert.ToInt16(result.ToString()) + 5);
- System.Console.ReadKey();
- }
- }
- }
沒有留言:
張貼留言