|
-- 會員 / 註冊 --
|
|
|
|
精通MATLAB與CC++混合程序設計(第4版) ( 簡體 字) |
作者:劉維 編著 | 類別:1. -> 工程繪圖與工程計算 -> Matlab |
譯者: |
出版社:北京航空航天大學出版社 | 3dWoo書號: 42599 詢問書籍請說出此書號!【缺書】 NT售價: 445 元 |
出版日:7/28/2015 |
頁數: |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787512416024 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: 本書結合大量實例,系統全面地介紹了MATLAB與C/C++進行混合程序設計的方法和技巧。全書共分六部分22章。第一部分重點介紹MATLAB與C/C++混合程序設計基礎。第二部分重點介紹MATLAB中調用C/C++程序的方法。第三部分重點介紹MATLAB與C/C++語言之間的數據和函數接口。第四部分重點介紹MATLAB編譯器的工作原理、發展歷程和應用技巧等。第五部分重點介紹C/C++程序中調用MATLAB程序的方法。第六部分重點介紹與MATLAB關系密切的數學庫的使用方法。
本書涵蓋了MATLAB與C/C++混合程序設計的各個方面,內容由淺入深,并輔以大量實戰型的實例程序,可供大中專院校學生作為教材使用,也可供相關領域工程師與科學家參考。
|
目錄:第一部分MATLAB與C/C++混合程式設計基礎
第1章MATLABM 語言程式設計基礎 ……… 3
1.1本章導讀 ………3
1.2MATLAB環境 …………3
1.2.1命令列窗口(CommandWindow)……… 4
1.2.2代碼編輯器(Editor) …………6
1.2.3工作空間視窗(Workspace) ………9
1.2.4歷史命令視窗(CommandHistory)…… 9
1.2.5歷史命令保存指令(diary) ………12
1.2.6使用 MATLAB環境的圖形介面完成操作……… 12
1.2.7MATLAB幫助 …………16
1.2.8代碼輸入提示………17
1.3MATLABM 語言基礎………18
1.3.1MATLAB指令檔(Script文件)…… 18
1.3.2MATLAB運算子與運算式 ………20
1.3.3MATLAB函數 …………24
1.3.4MATLABM 語言中的向量運算………26
1.3.5MATLAB的程式控制 ………32
1.3.6MATLAB程式異常處理 ……36
1.3.7物件導向的程式設計…………37
1.4MATLAB常用的資料類型 ………41
1.4.1數值陣列………42
1.4.2字元陣列………45
1.4.3邏輯陣列………46
1.4.4元組陣列………47
1.4.5結構體陣列…………50
1.4.6函數控制碼陣列………52
1.5MATLAB常用資料視覺化功能……… 54
1.5.1使用figure函數創建圖形視窗 ……… 54
1.5.2繪製曲線………55
1.5.3使用area函數繪製面積圖 ……… 61
1.5.4使用quiver或quiver3函數繪製向量圖 ……66
1.5.5顯示圖像資料………68
1.5.6顯示三維曲面資料………69
第2章C語言和C++語言程式設計基礎……71
2.1本章導讀………71
2.2編譯環境………71
2.3編輯器…………72
2.4注釋…………73
2.5檔包含(include) ………… 74
2.6定義和聲明…………74
2.7第一個C/C++語言程式 ………75
2.8編譯和運行…………77
2.9資料類型………78
2.9.1常量…………78
2.9.2變量…………78
2.9.3指針…………79
2.9.4記憶體的分配與釋放………82
2.9.5數組…………82
2.9.6字串…………84
2.9.7枚舉類型………86
2.9.8結構體…………87
2.10操作符 ………88
2.11程式結構 …………91
2.12類與對象 …………97
2.13函數範本和類範本…………104
2.14C++/CLI …………114
第3章MATLAB與C/C++語言對照 …… 117
3.1本章導讀 …………117
3.2MATLAB語言 ………117
3.3C語言 ………122
3.4C++語言 ………130
3.5MATLAB語言、C語言和C++語言實現矩陣操作的比較… 139
第4章動態連結程式庫基礎 ………142
4.1本章導讀 …………142
4.2為什麼使用動態連結程式庫 …………142
4.3C/C++語言實現動態連結程式庫……… 143
4.4C語言與C++語言動態連結程式庫的差異 ……… 147
4.5動態連結程式庫的調用方式 …………147
4.5.1隱式連結 …………147
4.5.2顯式連結 …………149
4.6在 MATLAB環境下創建動態連結程式庫 …… 152
第5章開發與調試環境說明…… 154
5.1本章導讀 …………154
5.2MATLAB環境 ………154
5.3MATLABCoder圖形介面 ……155
5.4MATLAB編譯器 …………155
5.5mex命令 …………156
5.6mbuild命令 ………158
5.7C/C++語言整合式開發環境…… 160
5.8Dependency工具 ………163
第二部分在MATLAB中調用C/C++程式
第6章MATLAB通過 MEX檔調用C/C++程式… 167
6.1本章導讀 …………167
6.2MEX文件 ……… 167
6.3MEX檔與 M 檔的關係 …… 168
6.4MEX檔實例 ………168
6.5MEX檔結構 ………170
6.6編譯 MEX檔 ……… 171
6.7採用C++語言創建 MEX檔 ……172
6.8在 MEX檔中實現圖形介面功能 ……… 173
6.9在 VisualC++中調試 MEX文件 ……… 179
6.9.1利用VisualC++6.0調試 MEX文件 ……… 179
6.9.2利用VisualC++2010調試 MEX檔……… 184
第7章MATLAB通過動態連結程式庫調用C/C++程式 …… 188
7.1本章導讀 …………188
7.2動態連結程式庫 ………188
7.3MATLAB動態連結程式庫的基本操作……… 189
7.3.1載入動態連結程式庫 ………189
7.3.2查看動態連結程式庫信息 ………190
7.3.3利用 mbuild生成動態連結程式庫…… 191
7.3.4調用動態連結程式庫中包含的函數 ………194
7.4MATLAB動態連結程式庫的操作函數……… 195
7.4.1loadlibrary ………195
7.4.2unloadlibrary …………197
7.4.3libfunctions………197
7.4.4libfunctionsview …………198
7.4.5libisloaded ………198
7.4.6calllib ………198
7.4.7libpointer…………199
7.4.8libstruct …………199
7.5MATLAB與動態連結程式庫的參數傳遞和轉換……… 200
7.5.1MATLAB與C/C++語言資料類型的對照關係… 200
7.5.2MATLAB與動態連結程式庫基本參數的直接傳遞…… 201
7.5.3利用libpointer傳遞指針參數 ……… 203
7.5.4傳遞 MATLAB陣列類型資料 ……… 208
7.5.5利用libstruct傳遞結構體參數 ……… 210
7.5.6傳遞枚舉類型參數 …………212
7.6實例1:調用協力廠商提供的動態連結程式庫完成檔讀取 …… 213
7.7實例2:用戶創建動態連結程式庫完成檔操作 …… 215
第8章MATLAB通過可執行程式調用C/C++程式 …… 221
8.1本章導讀 …………221
8.2在 MATLAB中執行外部程式 ……… 221
8.3實例1:通過外部程式返回檔資訊 ……… 222
8.4實例2:通過外部程式轉換檔案格式 ……… 227
第9章MATLAB通過ActiveX調用C/C++程式 …… 233
9.1本章導讀 …………233
9.2ActiveX簡介 …………233
9.3MATLAB調用ActiveX組件 ……… 234
9.4實例:調用ActiveX打開文件……239
第三部分MATLAB 與C/C++語言的資料和函數介面
第10章MATLAB與C/C++語言混合程式設計
常用的資料類型 …… 245
10.1本章導讀…………245
10.2size_t類型 ………245
10.3mwIndex,mwSignedIndex和 mwSize類型 ……… 245
10.4mxChar和 mxLogical類型 …… 246
10.5mxClassID類型………246
10.6mxComplexity類型 ………247
10.7mxArray類型 ………248
10.8特殊常量…………248
10.9mwArray類 …………250
10.9.1mwArray類的基本操作 ………251
10.9.2mwArray類操作的詳細說明……… 252
10.10mwString類…………258
第11章在C/C++語言中操作 MATLAB陣列的函數 … 260
11.1本章導讀…………260
11.2數值陣列操作函數…………260
11.2.1創建數值陣列………260
11.2.2數值陣列的資料操作………262
11.2.3標量資料的操作………264
11.3字串陣列操作函數………264
11.3.1創建字串陣列………264
11.3.2字串陣列轉換為C語言字串 ……… 266
11.3.3獲取字元陣列的資料………269
11.4邏輯型陣列操作函數………269
11.5疏鬆陣列操作函數…………270
11.5.1創建疏鬆陣列的操作函數………271
11.5.2疏鬆陣列索引的操作函數………271
11.6結構體操作函數………273
11.6.1創建結構體………273
11.6.2結構體域的操作………274
11.7元組陣列操作函數…………276
11.8類物件陣列屬性操作函數………278
11.9記憶體操作函數…………281
11.9.1記憶體分配操作函數…………281
11.9.2記憶體釋放操作函數…………282
11.9.3陣列複製操作函數…………283
11.9.4MATLAB記憶體操作函數與C語言記憶體操作函數對比… 283
11.10索引、維數和元素個數操作函數……285
11.10.1線性索引函數 …………285
11.10.2維數和元素個數操作函數 ………286
11.11MATLAB陣列驗證函數(Is函數) ……288
11.11.1判斷 MATLAB陣列類型 …… 288
11.11.2其他Is函數 …………290
11.12其他操作函數 ………291
第12章在C/C++語言中操作 MATLAB陣列的方法 … 293
12.1本章導讀…………293
12.2MATLAB普通數值陣列的操作…… 293
12.3稀疏陣列陣列(SparseArray)的操作 …… 295
12.4MATLAB字元陣列的操作 ……299
12.5MATLAB元組陣列的操作 ……300
12.6MATLAB結構體陣列的操作……… 302
12.7更改 MATLAB數值陣列的維數…… 305
12.8分析並顯示 MATLAB陣列的內容……… 309
第13章C/C++語言在 MEX程式中的專用介面函數…… 320
13.1本章導讀…………320
13.2工作區變數操作函數………320
13.3輸出警告和錯誤資訊函數………327
13.4調用 MATLAB函數和執行 MATLAB命令的函數……328
13.5操作 MEX檔函數 ……… 331
第14章在C/C++程式中操作 MATLABMAT檔 …… 335
14.1本章導讀…………335
14.2MAT檔概要介紹 ………335
14.3MAT檔案格式 ………336
14.4操作 MAT檔的 mat API函數 ………339
14.4.1MAT檔打開和關閉等操作函數……… 340
14.4.2迴圈獲取 MAT檔中的變數及其資訊……… 341
14.4.3獲取 MAT檔中的變數目錄和變數及其資訊…… 342
14.4.4將陣列寫入 MAT檔或刪除 MAT檔中的變數 …… 342
14.5MAT檔操作方法 ………343
14.5.1向 MAT檔中寫入 mxArray變數 ……343
14.5.2從 MAT檔中讀取 mxArray變數 ……348
14.5.3查看 MAT檔中的陣列變數清單……… 352
14.5.4遍歷 MAT檔中的所有陣列變數……… 354
第四部分MATLAB編譯器的工作原理、發展歷程和應用技巧
第15章MATLAB編譯器…… 359
15.1本章導讀…………359
15.2MATLAB編譯器的工作原理……… 359
15.3MATLAB編譯器的發展歷程……… 360
15.4使用 MATLAB編譯器的準備工作……… 362
15.5mcc編譯器的典型應用:獨立可執行檔 …… 363
15.5.1編譯過程…………363
15.5.2編譯過程詳細分析………366
15.5.3img.ctf文件 ………367
15.5.4img_main.c文件 …………368
15.5.5使用 m選項 …………373
15.6C語言動態連結程式庫…………374
15.6.1編譯過程…………374
15.6.2編譯過程詳細分析…………374
15.7C++語言動態連結程式庫 …………376
15.7.1編譯過程…………376
15.7.2編譯過程詳細分析…………376
15.8C語言與C++語言動態連結程式庫的差異 ……… 378
15.9調用MATLAB編譯器生成的C/C++語言動態連結程式庫時常用的介面函數…………379
15.10mcc命令選項、巨集及捆綁命令檔………381
15.10.1mcc常用命令選項 ………381
15.10.2mcc巨集選項 …………383
15.10.3捆綁命令文件(bundlefile) ……384
15.11MATLAB編譯器應用中的常見問題……… 385
15.11.1編譯Script檔 ………385
15.11.2MATLAB編譯器關聯分析失效的情況…… 385
15.11.3在C/C++程式中調用MATLAB內置函數(builtGinfunction) 388
15.11.4可變參數傳遞(varargin,varargout)………388
15.11.5在 MATLAB環境下執行與通過 MCR執行時的差異 …… 390
15.11.6獲取CTF檔的目錄…… 391
15.11.7螢幕列印和錯誤資訊顯示函數 ………391
15.12MATLAB配置工具(DeploymentTool)…… 396
15.12.1DeploymentTool工具簡介 ………396
15.12.2利用 MATLAB配置工具編譯獨立可執行檔 … 397
15.13程式發佈 ………399
15.13.1MCR版本 …………399
15.13.2安裝 MCR ………… 399
15.13.3獨立可執行檔發佈需要附加的檔 ……400
15.13.4動態連結程式庫發佈需要附加的檔 ……400
第五部分在C/C++程式中調用MATLAB程式
第16章生成可獨立運行的MATLAB程式 ……403
16.1本章導讀…………403
16.2MATLAB環境下編譯獨立可執行檔……… 403
16.2.1直接編譯 M 檔 …………403
16.2.2在 MATLABM 檔中調用C/C++函數 … 404
16.2.3在C/C++語言中調用由 MATLAB.m檔生成的函數 …… 407
16.3VisualC++環境下編譯獨立可執行檔…… 413
16.3.1趣味彈球 MATLABM 程式 ……… 414
16.3.2去除控制台窗口………418
16.3.3去除控制台視窗的另一種方法………426
16.3.4將輸出改到 Windows窗口上 ……… 433
第17章C/C++程式通過引擎和動態連結程式庫調用MATLAB程式 ……… 447
17.1本章導讀…………447
17.2在C++程式中調用 MATLAB引擎 ……447
17.2.1API函數介紹…………447
17.2.2VisualC++調用 MATLAB引擎的實例 …… 448
17.3VisualC++中調用 MATLABM 函數編譯後的動態連結程式庫…… 458
第18章C/C++程式通過COM 元件調用MATLAB程式
………… 471
18.1本章導讀…………471
18.2COM 基礎知識 ………471
18.2.1COM 組件 ………471
18.2.2物件和介面………472
18.2.3COM 在 Windows平臺下的實現方式 ……… 473
18.3在 VisualC++中調用COM 組件 ……… 475
18.3.1COM 組件與 HRESULT類型 …… 475
18.3.2COM 元件與字串 ………476
18.3.3CLSID和ProgID的相互轉換 ……… 476
18.3.4AddRef(),Release(),QueryInterface()介面函數……476
18.3.5在VisualC++中調用COM 元件的步驟 …… 477
18.4MATLAB編譯COM 組件的基礎知識 ……… 479
18.4.1配置 MATLABC/C++語言編譯器 ……479
18.4.2使用 MATLAB的DeploymentTool工具……479
18.4.3實現COM 元件的方法 …… 480
18.4.4實現COM 元件的屬性 …… 481
18.4.5編譯COM 組件 ……… 481
18.5C/C++程式調用由DeploymentTool生成的元件 …… 482
18.6MATLABCOM 元件與C/C++程式之間的資料轉換 …… 489
18.6.1VARIANT資料類型 ……489
18.6.2COleVariant和_variant_t類 ………491
18.6.3SAFEARRAY資料類型 ………492
18.6.4SAFEARRAY的創建函數 ……493
18.6.5MATLAB資料類型的VARIANT類型表示 …… 494
18.6.6VARIANT變數與 MATLAB陣列的轉換規則 … 495
18.6.7陣列格式標誌(arrayformattingflags)………498
18.6.8資料轉換標誌(dataconversionflags) ………498
18.7MATLABCOM 工具庫 ………500
18.7.1簡介………500
18.7.2MWUtil類………500
18.7.3MWFlags類 …………501
18.7.4MWStruct類…………502
18.7.5MWField類 ………… 505
18.7.6MWComplex類………506
18.7.7MWSparse類…………506
18.7.8MWArg類………507
18.7.9MATLABMWComUtil的枚舉類型 ……507
18.8安裝和發佈 MATLABCOM 組件 ……… 509
18.9綜合實例…………510
18.9.1實例1:資料轉換及陣列格式標誌的使用 … 510
18.9.2實例2:採用 MWUtil處理varargin輸入和varargout輸出 …… 514
18.9.3實例3:MWStruct和 MWField的操作實例 … 519
18.9.4實例4:MWComplex操作實例 ……528
18.9.5實例5:MWSParse操作實例 ………532
第19章C/C++程式通過.NET 配件調用MATLAB程式…… 536
19.1本章導讀…………536
19.2將 MATLAB程式編譯為.NET配件 ……536
19.3在 VisualC++2010中調用.NET配件 ……537
19.4VisualC++與 MATLAB之間的資料轉換…… 539
19.5使用 MWNumericArray運算元值陣列 ……… 540
19.5.1數值陣列的類型………540
19.5.2C++索引與 MATLAB陣列索引 ……… 541
19.5.3實型陣列和複型陣列………541
19.5.4創建標量………542
19.5.5創建向量…………543
19.5.6創建矩陣…………545
19.5.7創建任意維數的數值陣列……547
19.6使用 MWCharArray操作字元陣列……… 549
19.7使用 MWLogicalArray操作邏輯陣列 ……… 551
19.8使用 MWStructArray操作結構體陣列 ……… 552
19.9使用 MWCellArray操作元組陣列 ……… 553
第20章將 MATLABM 程式轉換為C/C++程式…… 555
20.1本章導讀…………555
20.2MATLABCoder的功能 ………555
20.3MATLABCoder對 MATLABM 語言代碼的約束 …… 556
20.4第一個實例………557
20.4.1實例說明…………557
20.4.2基本原理…………558
20.4.3代碼實現…………559
20.4.4實例執行結果…………567
20.4.5生成C/C++代碼 ………569
20.5MATLABCoder圖形介面 ……569
20.6codegen命令 …………571
20.7MATLABCoder的典型應用 ………573
20.7.1將 MATLABM 程式轉換為C/C++代碼 … 573
20.7.2將 MATLABM 程式轉換為 MEX檔………575
20.7.3將 MATLABM 程式編譯為可執行檔 …… 575
20.7.4將 MATLABM 程式編譯為動態連結程式庫 …… 576
20.8用 MATLABCoder轉換後的C/C++代碼中的資料類型…576
20.8.1變數類型定義………577
20.8.2強制類型轉換…………577
20.8.3基本類型定義………578
20.8.4複數類型…………580
20.8.5固定長度變數與可變長度變數………582
20.8.6結構體類型………587
第六部分與MATLAB相關的數學庫
第21章C/C++程式調用Matcom矩陣庫 … 593
21.1本章導讀…………593
21.2Matcom與 MATLAB ………… 593
21.3安裝 Matcom ………… 593
21.4在 VisualC++中使用 MatcomC++矩陣庫 …… 595
21.5使用 MatcomC++矩陣庫的矩陣類 Mm …… 601
21.5.1創建數值矩陣…………601
21.5.2創建字元矩陣…………602
21.5.3利用下標訪問矩陣的元素………603
21.5.4獲取矩陣資料的指標………603
21.5.5Mm矩陣對象的初始化……604
21.5.6Mm矩陣類的幾個常用函數……605
21.5.7MatcomC++矩陣庫常量 ……607
21.5.8調用系統函數…………607
21.6Matcom矩陣庫的圖形和圖像顯示功能……… 609
21.7Matcom用於圖形顯示的常用函數……… 610
21.8Matcom 用於圖像顯示的常用函數……… 611
21.9Matcom 的應用實例 ………612
21.9.1實例1:Matcom Mm矩陣類的創建及使用 …612
21.9.2實例2:圖形繪製的基本功能演示 ………616
21.9.3實例3:利用 Matcom 繪製動態曲線 ……621
21.9.4實例4:利用 Matcom 進行圖像顯示 ………633
21.9.5實例5:Matcom 二維和三維曲線繪製綜合應用 … 646
第22章C/C++程式調用 MATLABC++數學庫 … 660
22.1本章導讀…………660
22.2MATLABC++數學庫 ………660
22.3在 VisualC++工程中調用 MATLABC++數學庫 … 660
22.4MATLABC++數學庫的使用 ……663
22.5輸入和輸出 MATLAB陣列…… 663
22.5.1直接輸出到螢幕…………663
22.5.2MATLABmwArray陣列資料的輸入和輸出的其他方式… 664
22.6操作 MATLABmwArray陣列 …… 668
22.6.1創建 MATLABmwArray陣列的操作 ……… 668
22.6.2採用 MATLABC++數學庫操作疏鬆陣列 …671
22.6.3MATLABC++數學庫對字元陣列的操作… 676
22.6.4MATLABC++數學庫對元組陣列的操作… 679
22.6.5MATLABC++數學庫對結構體陣列的操作…… 682
22.6.6訪問 mwArray類中的資料 …… 684
22.6.7MATLABC++數學庫對 MATLAB陣列操作常用的小技巧 … 687
22.6.8調用系統函數……691
參考文獻
|
序: |
|