matlab外部介面編程
① MATLAB與外部程序介面編程的目錄
前言
第1章MATLAB外部介面概述1
1.1MATLAB系統簡介1
1.2MATLAB常用的數據類型2
1.2.1數值陣列2
1.2.2字元陣列4
1.2.3元組陣列5
1.2.4結構體陣列7
1.2.5類和對象9
1.3MATLAB介面簡介10
1.3.1MEX文件10
1.3.2MATLAB引擎11
1.3.3MATLABC/C++數學函數庫11
1.3.4MATLAB編譯器12
1.3.5串口介面13
第2章MATLAB的MEX及MAT文件14
2.1c語言MEX14
2.2C-MEX混合編程16
2.3MEX文件的創立與調用18
2.3.1工程實例18
2.3.2編譯器選項21
2.3.3腳本M文件向函數M文件的轉化22
2.3.4MEX獨立應用程序的發布24
2.3.5MEX的編程實例25
2.4FORTRAN語言的MEX文件29
2.4.1簡單的FORTRAN語言MEX文件示例29
2.4.2傳遞字元串變數31
2.4.3在FORTRAN語言中調用MATLAB命令33
2.5操作MAT文件35
2.5.1MAT文件格式35
2.5.2操作MAT文件的MATLABAPI36
2.6VisualC++調用MAT時的環境設置39
2.7MAT文件應用舉例40
第3章MATLAB數值運算及數據的導入/導出45
3.1數值運算45
3.1.1矩陣的構造45
3.1.2矩陣的基本運算48
3.1.3矩陣的函數運算50
3.1.4矩陣分解51
3.2文本的打開和關閉55
3.3二進制數據56
3.3.1二進制數據的導入56
3.3.2二進制數據的導出58
3.4數據分析和統計59
3.4.1基本數據分析函數59
3.4.2協方差和相關系數函數65
3.4.3有限差分66
3.5使用文件I/O函數67
3.5.1二進制數據的讀取68
3.5.2二進制數據的寫入69
3.5.3逐行讀取文本文件69
3.5.4格式化寫入文本數據70
3.6稀疏矩陣71
3.6.1稀疏矩陣的創建和存儲71
3.6.2查看稀疏矩陣74
3.6.3稀疏矩陣的運算75
第4章MATLAB編譯器77
4.1MATLAB編譯器簡介77
4.1.1MATLAB編譯器使用77
4.1.2編譯M文件的原因78
4.1.3MATLAB編譯器的局限性79
4.2mcc編譯器典型應用79
4.2.1獨立可執行文件79
4.2.2C動態鏈接庫84
4.2.3C++動態鏈接庫85
4.2.4C/C++動態鏈接庫的不同之處86
4.3進一步了解mcc命令87
4.3.1mcc常用命令選項87
4.3.2捆綁命令文件88
4.4M文件與C/C++混合創立可獨立運行的程序88
4.5控制代碼生成91
4.5.1控制代碼生成介紹91
4.5.2編譯器生成的頭文件93
4.5.3內部介面函數95
4.5.4編譯器支持的可執行類型98
4.5.5M代碼與C/C++代碼的介面102
4.6MATLAB和C++介面中函數注冊103
4.7綜合實例106
第5章MATLAB引擎的混合編程110
5.1MATLAB引擎函數簡介110
5.2MATLAB引擎函數庫111
5.3在VisualC++中調用MATLAB引擎時的環境設置116
5.4MATLAB引擎類的封裝124
5.4.1CMATLABEng類的定義和實現代碼124
5.4.2CMATLABEng說明和使用方法128
5.5CMATLABEng應用實例128
5.6在VisualFORTRAN中使用MATLABEngine131
第6章MATLAB與C/C++語言的介面136
6.1MATLAB與C語言混合編程數據類型136
6.1.1MATLABC語言介面中特殊的數據類型136
6.1.2size_t類型138
6.2MATLABC語言介面數據類型138
6.2.1MATLAB普通數值陣列的操作138
6.2.2稀疏數組陣列140
6.2.3MATLAB結構體陣列143
6.2.4MATLAB元組146
6.2.5MATLAB字元陣列148
6.3MATLAB調用C149
6.3.1MEX文件介面150
6.3.2處理標量數據150
6.3.3處理字元串數據152
6.3.4處理稀疏矩陣153
6.3.5處理結構體和單元陣列156
6.4在C++中調用MATLABC++數學庫函數159
6.4.1MATLABC++數學庫函數介紹159
6.4.2對MATLAB陣列的操作163
6.4.3索引172
6.4.4基於I/O流的陣列輸入178
6.4.5庫函數調用182
6.4.6數學運算符的使用186
6.5MATLABC++工具函數189
第7章MATLABCOMBuilder與VisualC++192
7.1COM基礎知識192
7.2MATLABCOMBuilder簡介193
7.3COMBuilder基礎知識193
7.3.1配置MATLABC/C++編譯器193
7.3.2創建MATLABCOMBuilder組件194
7.3.3MATLABCOMBuilder工具庫197
7.3.4在VisualC++中調用COM組件的步驟198
7.4MATLABCOMBuilder與VisualC++之間的數據轉換199
7.4.1VARIANT數據類型199
7.4.2SAFEAPPAY數據類型201
7.4.3SAFEAPPAY的創建函數202
7.4.4MATLABCOMBuilder與VisualC++之間的數據轉換203
7.5MATLABCOMBuilder的枚舉類型207
7.6綜合實例209
第8章MATLAB與Java、Delphi介面編程212
8.1向MATLAB中引入Java類庫213
8.2創建和使用Java對象216
8.2.1創建Java對象216
8.2.2Java對象的鏈接217
8.2.3存儲和裝載對象218
8.2.4使用Java對象222
8.3在MATLAB中使用Java數組224
8.3.1Java數組的創建225
8.3.2為Java數組賦值226
8.3.3訪問Java數組元素227
8.3.4Java數組的引用和復制229
8.3.5Java數組的鏈接230
8.4向Java對象傳遞數據231
8.5處理Java方法調用返回的數據235
8.6綜合實例236
8.7利用MATLAB引擎實例混合編程245
8.7.1動態鏈接庫介紹245
8.7.2在Delphi中調用VisualC++創建的動態鏈接庫的實例245
8.7.3MATLAB引擎動態鏈接庫的設計250
8.8Delphi調用Mideva生成的動態鏈接庫254
8.8.1Mideva介紹254
8.8.2應用實例254
8.9通過外部調用實現混合編程259
8.9.1外部調用方法介紹259
8.9.2應用實例260
第9章MATLAB與其他語言的混合編程262
9.1C++Builder與MATLAB262
9.1.1Mideva軟體平台262
9.1.2C++Builder直接調用MATLAB函數263
9.1.3C++Builder調用MATLAB工具箱函數轉換後的DLL264
9.1.4C++Builder與MATLAB混合編程的另一種實現266
9.1.5綜合實例268
9.2MATLAB和Excel的混合編程270
9.2.1MATLAB和Excel的混合編程介紹270
9.2.2通過ExcelLink實現Excel和MATLAB的數據共享270
9.2.3通過Excel生成器276
9.2.4直接將MATLAB工作區間的數據復制到Excel278
9.3MATLAB與VisualBasic語言介面編程279
9.3.1DDE編程279
9.3.2MATLAB調用VisualBasic組件281
9.3.3VisualBasic調用MATLAB組件289
9.3.4綜合實例290
第10章Matcom292
10.1Matcom的安裝292
10.2編譯獨立的可執行程序293
10.3使用Matrix295
10.3.1創建一個新的C++工程295
10.3.2初始化工作296
10.3.3函數調用297
10.4在VisualC++中使用MatcomC++矩陣庫299
10.5使用MatcomC++矩陣庫的矩陣類Mm302
10.5.1創建字元矩陣302
10.5.2創建數值矩陣303
10.5.3利用下標訪問矩陣的元素304
10.5.4獲取矩陣數據的指針304
10.5.5Mm矩陣對象的初始化305
10.5.6MatcomC++矩陣庫常量306
10.5.7Mm矩陣類的幾個常用函數306
10.5.8調用系統函數308
10.6Matcom用於圖形顯示的常用函數310
10.7MatcomC++矩陣庫的圖形和圖像顯示功能310
10.8Matcom進行圖像顯示的常用函數312
10.9Matcom應用實例312
第11章MATLAB與外設的數據交換及混合編程318
11.1串口介面318
11.1.1什麼是MATLAB串口介面318
11.1.2什麼是串口通信318
11.1.3串口介面標准318
11.1.4使用串口通信電纜連接兩台設備319
11.1.5串口信號和針分配320
11.1.6串口數據格式320
11.1.7檢測操作平台的串口信息320
11.2串口對象的建立321
11.2.1建立一個串口對象321
11.2.2連接到設備323
11.2.3配置通信參數324
11.3數據的讀寫325
11.3.1驗證雙通道示波器信息舉例325
11.3.2控制對MATLAB命令行的訪問326
11.3.3向串口設備寫數據326
11.3.4從設備讀入數據328
11.4事件和函數回調331
11.4.1回調函數應用舉例331
11.4.2事件類型和回調屬性332
11.4.3存儲事件信息333
11.4.4建立和執行一個回調函數333
11.5記錄數據到磁碟334
11.5.1記錄數據的應用舉例335
11.5.2創建多個記錄文件335
11.5.3設定一個文件名335
11.5.4記錄文件的格式336
11.6保存和裝載數據336
11.6.1串口對象的讀與寫操作的舉例336
11.6.2斷開連接和清空工作空間337
11.7混合編程應用實例338
11.7.1數字圖像處理338
11.7.2MATLAB圖像處理工具箱338
11.7.3VisualC++的圖像處理點陣圖文件讀/寫操作339
11.8實例框架341
11.8.1框架搭建341
11.8.2模塊劃分343
11.8.3應用程序功能添加356
11.9混合編程的實現方法360
11.9.1圖像形態學——MATLAB引擎數據交互實現360
11.9.2圖像直方圖統計——MATLAB引擎命令實現363
參考文獻368
……