□劉廷
C#與MATLAB混合編程在水閘數字化設計系統中的應用
□劉廷
為了實現水閘的優化設計,本文在分析C#和MATLAB各自編程優缺點的基礎上,結合MATLAB遺傳算法工具箱在水閘數字化設計系統中的應用,詳細介紹了C#與MATLAB混合編程的過程,并用具體的工程實例證明了該方法的可行性及正確性。
C#;MATLAB;混合編程;水閘;遺傳算法
Microsoft Visual C#和MATLAB分別是Microsoft公司和Math Works公司開發的兩種高級編程語言,在程序設計上優勢各異,為了最大程度上實現二者的優勢互補,提高編程效率,本文以MATLAB 2011與VS2010作為開發環境,以MATLAB遺傳算法工具箱在水閘數字化設計系統中的應用為例詳細講解了MATLAB 2011與VS2010混合編程的流程和其中應注意的問題。
C#與MATLAB混合編程有多種實現方法,本文采用靈活性較好、集成度較高的動態鏈接庫技術實現C#對MATLAB函數的調用。
1.1 MATLAB創建動態鏈接庫(DLL)
在MATLAB 2011版本中,已經對.NET混合編程提供了良好的接口和編程向導,具體步驟為:在Command Window窗口內輸入“deploytool”,在彈出的Deployment Project對話框中輸入工程名稱、存儲位置等,并在Type下拉框中選擇“.Net Assembly”類型,然后,在彈出的.Net Assembly對話框中,點擊[Add class]創建新類ycsf,并將提前準備好的遺傳算法函數主文件(ycsf.m)添加到新建的ycsf類中,單擊Build按鈕等待編譯完成即可生成ycsf.dll文件。
1.2 C#調用動態鏈接庫(DLL)
在已經創建的C#項目工程的解決方案資源管理器中,添加引用,選擇
1.1 中創建好的ycsf.dll文件,并在程序代碼的頭文件部分添加using ycsf。因為ycsf.dll本質上是把ycsf.m函數封裝在ycsf類中生成的一個類庫,所以,使用該函數前必須首先進行實例化。
1.3 數據類型……