然而一般時刻很常且會直覺地想到用Matlab 去做數值分析。
這邊介紹利用Matlab 產生的.dll 元件再去轉到 C# 跑output 的方法。
版本 : 1 ) Matlab R2012b 32 bits
2 ) Visual Studio 2010 C# 32 bits
系統 : Windows 7 64bits
step1 : 首先我們先創建一個 .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;
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();
step11 : 可以看到結果為輸入5之後 ,透過twice.m 輸出為10之後再加5之後的結果。
(完整程式碼如下 : )
MATLAB直接轉C#的CODE?
回覆刪除