精通MATLAB混合編程

出版時間:2012-6  出版社:電子工業(yè)出版社  作者:丁毓峰  頁數(shù):409  
Tag標簽:無  

內(nèi)容概要

  《精通MATLAB混合編程》詳細講解Visual C++和MATLAB混合編程各項技術(shù)和重點應用。《精通MATLAB混合編程》從混合編程環(huán)境的搭建、混合開發(fā)中Visual C++和MATLAB必備基礎(chǔ)知識講解,詳細講解六種混合開發(fā)方式:Visual C++調(diào)用MATLAB Engine庫、Visual C++調(diào)用MATLAB的C/C++數(shù)學函數(shù)庫、基于數(shù)據(jù)文件交換、基于COM技術(shù)、使用MATCOM、使用ActiveX技術(shù),還講解了七大混合編程應用領(lǐng)域:科學運算、圖形圖像顯示、圖像識別、控制系統(tǒng)模型輸入和分析、控制系統(tǒng)的設計仿真、信號頻譜分析和數(shù)據(jù)采集和分析。最后,《精通MATLAB混合編程》還講解了兩個案例:Visual CH和MATLAB開發(fā)齒輪優(yōu)化設計系統(tǒng),Visual C++和MATLAB的汽車ABS系統(tǒng)仿真等內(nèi)容。

作者簡介

丁毓峰,博士,武漢理工大學副教授。中國機械工程學會高級會員。2008年—2009年加拿大多倫多大學機械系訪問學者。2001年—2003年在深圳市中興通訊股份有限公司任軟件工程師、系統(tǒng)工程師。研究領(lǐng)域主要集中在制造自動化和信息化,長期使用MATLAB軟件系統(tǒng)進行教學和科研工作。近5年主持和參與了多項國家級、省級和市級科技項目。撰寫專著3部,獲得計算機版權(quán)登記5項,申請發(fā)明專利2項,發(fā)表論文60余篇。成果先后獲得湖北省科學技術(shù)進步獎,武漢市科學技術(shù)進步獎和第11屆湖北省自然科學優(yōu)秀學術(shù)論文獎。

書籍目錄

第1章 混合編程環(huán)境的搭建 1.1 MATLAB與C/C++混合編程的優(yōu)點 1.1.1 MATLAB編程的優(yōu)缺點 1.1.2 C/C++編程的優(yōu)缺點 1.1.3 混合編程的優(yōu)缺點 1.2 混合編程主要方法概述 1.2.1 Visual C++調(diào)用MATLAB引擎 1.2.2 基于數(shù)據(jù)文件交換的方法 1.2.3 基于COM技術(shù)的方法 1.2.4 使用MATCOM方法 1.2.5 基于ActiveX控件的方法 1.2.6 使用MATLAB Add-in方法 1.3 Visual C++和MATLAB混合編程環(huán)境要求 1.4 Visual C++的安裝和配置 1.4.1 Visual C++6.0的安裝 1.4.2 Visual C++的配置 1.5 MATLAB的安裝和配置 1.5.1 MATLAB的安裝 1.5.2 MATLAB的配置 1.6 安裝和配置的常見問題 1.6.1 Visual C++的安裝和配置問題 1.6.2 MATLAB的安裝和配置問題 1.7 小結(jié) 第2章 Visual C++開發(fā)基礎(chǔ) 2.1 C++面向?qū)ο蟪绦蛟O計 2.1.1 面向?qū)ο笳Z言和方法 2.1.2 類、對象和消息 2.2 C++異常處理機制 2.2.1 錯誤和異常 2.2.2 異常處理的機制和實現(xiàn) 2.2.3 Visual C++異常處理 2.3 Windows程序內(nèi)部運行機制 2.3.1 API與SDK 2.3.2 窗口與句柄 2.3.3 消息與消息隊列 2.4 動態(tài)鏈接庫基礎(chǔ) 2.4.1 DLL與進程的地址空間 2.4.2 DLL分類 2.4.3 創(chuàng)建DLL模塊 2.5 Visual C++程序編譯鏈接的原理與過程 2.5.1 程序設計編譯原理 2.5.2 Visual C++程序編譯鏈接過程 2.6 MFC框架程序 2.6.1 MFC AppWizard 2.6.2 基于MFC的程序框架剖析 2.7 ActiveX控件 2.7.1 概述 2.7.2 ActiveX控件分類 2.7.3 ActiveX控件應用 2.8 Visual C++程序的調(diào)試和優(yōu)化 2.8.1 Visual C++程序調(diào)試方法和過程 2.8.2 Visual C++程序優(yōu)化 2.9 小結(jié) 第3章 MATLAB編程基礎(chǔ) 3.1 MATLAB程序流程控制 3.1.1 順序結(jié)構(gòu) 3.1.2 循環(huán)結(jié)構(gòu) 3.1.3 選擇結(jié)構(gòu) 3.1.4 分支語句 3.1.5 其他控制語句 3.2 函數(shù)句柄 3.2.1 創(chuàng)建和查看函數(shù)句柄 3.2.2 使用函數(shù)句柄 3.3 變量的檢測和限權(quán)使用函數(shù) 3.3.1 輸入/輸出變量檢測指令 3.3.2 跨空間變量傳遞 3.3.3 子函數(shù)和私用函數(shù) 3.4 串(表達式)演算函數(shù) 3.4.1 eval 3.4.2 feval 3.5 MATLAB面向?qū)ο缶幊?3.5.1 MATLAB中的類 3.5.2 具有類屬性的數(shù)據(jù) 3.5.3 實現(xiàn)帶類方法的操作 3.6 MATLAB的數(shù)據(jù)類型 3.6.1 變量與常量 3.6.2 數(shù)字變量的運算及顯示格式 3.6.3 字符串 3.7 M腳本文件和M函數(shù)文件 3.7.1 M文件的一般結(jié)構(gòu) 3.7.2 M腳本文件 3.7.3 M函數(shù)文件 3.7.4 局部變量和全局變量 3.8 MATLAB程序的調(diào)試和優(yōu)化 3.8.1 MATLAB程序調(diào)試方法和過程 3.8.2 MATLAB程序優(yōu)化 3.9 小結(jié) 第4章 Visual C++調(diào)用 MATLAB Engine庫 4.1 MATLAB Engine概述 4.2 Visual C++使用MATLABEngine庫 4.2.1 設置Visual C++編譯環(huán)境 4.2.2 啟動/關(guān)閉引擎 4.2.3 向MATLAB發(fā)送命令 4.2.4 顯示或隱藏MATLAB窗口 4.3 MATLAB數(shù)據(jù)類型mxArray 4.3.1 創(chuàng)建mxArray類型數(shù)據(jù) 4.3.2 刪除mxArray類型數(shù)據(jù) 4.3.3 獲取mxArray數(shù)據(jù)大小 4.3.4 判斷 mxArray數(shù)組類型 4.3.5 操作mxArray數(shù)組數(shù)據(jù) 4.4 應用實例 4.5 小結(jié) 第5章 Visual C++調(diào)用MATLAB的C/C++數(shù)學函數(shù)庫 5.1 MATLAB C++數(shù)學庫概述 5.2 在Visual C++環(huán)境下調(diào)用MATLAB C++數(shù)學庫 5.2.1 設置靜態(tài)鏈接庫 5.2.2 設置C++選項卡中的選項 5.2.3 設置頭文件 5.3 mwArray陣列及系統(tǒng)函數(shù)的調(diào)用 5.3.1 操作矩陣 5.3.2 操作MATLAB mwArray陣列概述 5.3.3 創(chuàng)建MATLAB mwArray陣列的操作 5.3.4 數(shù)據(jù)陣列的操作 5.3.5 稀疏矩陣陣列的操作 5.3.6 字符型陣列的操作 5.3.7 單元陣列的操作 5.3.8 結(jié)構(gòu)體陣列的操作 5.3.9 調(diào)用系統(tǒng)函數(shù) 5.4 應用實例 5.5 小結(jié) 第6章 基于數(shù)據(jù)文件交換的混和編程方法 6.1 MAT文件概述 6.1.1 MAT文件格式 6.1.2 讀取MAT文件load 6.1.3 寫MAT文件 6.2 Visual C++操作MAT時的環(huán)境設置 6.3 用C/C++語言操作MAT文件的API函數(shù) 6.3.1 讀寫MAT文件的API函數(shù)簡介 6.3.2 打開MAT文件 6.3.3 關(guān)閉MAT文件 6.3.4 獲得MAT文件中所有陣列的目錄 6.3.5 獲得MAT文件的C語言文件句柄 6.3.6 從MAT文件中獲取一個陣列變量 6.3.7 將陣列變量內(nèi)容寫入MAT文件 6.3.8 獲得MAT文件中下一個陣列的數(shù)據(jù) 6.3.9 從MAT文件中刪除一個陣列 6.3.10 將陣列內(nèi)容寫入到MAT文件中 6.3.11 從MAT文件中讀取MATLAB陣列頭信息 6.3.12 從MAT文件中讀取下一個MATLAB陣列頭信息 6.4 應用實例 6.4.1 環(huán)境設置 6.4.2 在MATLAB中定義兩個變量 6.4.3 建立Visual C++工程 6.5 小結(jié) 第7章 基于COM技術(shù)的方法實現(xiàn)混合編程 7.1 COM技術(shù)概述 7.1.1 COM結(jié)構(gòu) 7.1.2 COM組件的有關(guān)概念 7.1.3 COM特性 7.1.4 COM發(fā)展前景 7.2 COM技術(shù)接口 7.2.1 從API到COM接口 7.2.2 接口定義和標識 7.2.3 用C++語言定義接口 7.2.4 接口描述語言IDL 7.3 使用MATLAB COM編譯器生成COM組件 7.3.1 MATLAB COM編譯器用法 7.3.2 MATLAB COM編譯器產(chǎn)生的COM組件 7.4 在Visual C++中使用MATLAB的COM組件 7.4.1 以早期綁定方式調(diào)用COM組件 7.4.2 #import指令的使用 7.5 應用實例 7.5.1 創(chuàng)建MATLAB組件 7.5.2 創(chuàng)建Visual C++工程 7.5.3 完善代碼 7.6 小結(jié) 第8章 使用MATCOM工具的混合編程 8.1 安裝MATCOM 8.2 MATCOM的基礎(chǔ)及應用 8.2.1 使用MATCOM C++矩陣庫的矩陣類Mm 8.2.2 在Visual C++中使用MATCOM C++矩陣庫 8.2.3 MATCOM C++矩陣庫的圖形和圖像顯示 8.2.4 MATCOM用于圖形顯示的函數(shù) 8.2.5 MATCOM用于圖像顯示的函數(shù) 8.3 MIDEVA概述 8.4 Visual C++使用MIDEVA的環(huán)境設置 8.4.1 添加頭文件和添加庫文件 8.4.2 添加MIDEVA提供的插件 8.5 應用實例 8.6 小結(jié) 第9章 使用ActiveX技術(shù)的混合編程 9.1 ActiveX技術(shù)基礎(chǔ) 9.1.1 ActiveX的定義 9.1.2 ActiveX的內(nèi)容 9.1.3 MATLAB支持的ActiveX技術(shù) 9.2 利用ActiveX自動控制器實現(xiàn)混合編程 9.2.1 ActiveX自動控制器 9.2.2 ActiveX相關(guān)函數(shù) 9.2.3 ActiveX對象的創(chuàng)建、事件處理與對象釋放 9.2.4 查詢和設置ActiveX對象的屬性 9.2.5 查詢及調(diào)用ActiveX組件的方法、事件 9.3 ActiveX自動化服務器 9.3.1 在客戶程序中執(zhí)行MATLAB命令 9.3.2 與客戶程序進行數(shù)據(jù)交換 9.4 應用實例 9.4.1 利用ActiveX自動控制器實現(xiàn)混合編程 9.4.2 利用ActiveX的自動化服務器進行混合編程 9.4.3 利用MATLAB ActiveX引擎進行混合編程 9.5 小結(jié) 第10章 科學運算 10.1 科學運算概述 10.2 混合編程在科學運算的開發(fā)原則 10.2.1 Visual C++處理科學運算問題的優(yōu)缺點 10.2.2 MATLAB處理科學運算的優(yōu)缺點 10.2.3 混合編程在科學運算的開發(fā)原則 10.3 Visual C++和MATLAB在科學運算中的銜接方式 10.3.1 MATLAB與Visual C++混合編程實現(xiàn)方法 10.3.2 MATcom編譯器 10.4 線性方程組求解 10.4.1 MATLAB求解 10.4.2 Visual C++求解 10.4.3 Visual C++和MATLAB混合編程對線性方程組求解 10.5 編程方式不同的對比 10.6 小結(jié) 第11章 圖形圖像顯示 11.1 Visual C++和MATLAB圖形圖像處理混合編程原則 11.2 Visual C++的圖形圖像處理及接口設計 11.2.1 Visual C++的圖像處理方法 11.2.2 Visual C++圖形處理方法 11.2.3 Visual C++和MATLAB圖形圖像處理的接口設計 11.3 MATLAB圖像處理基礎(chǔ) 11.3.1 顯示圖像 11.3.2 查看內(nèi)存中的圖像 11.3.3 圖像灰度分布直方圖均衡化 11.3.4 圖像文件的保存 11.3.5 查看新生成文件的內(nèi)容 11.4 圖像格式與MATLAB圖像類型 11.4.1 常用圖像格式 11.4.2 MATLAB圖像類型 11.4.3 MATLAB圖像類型轉(zhuǎn)換 11.5 MATLAB圖像顯示命令 11.5.1 MATLAB圖像的讀寫和顯示 11.5.2 二進制圖像的顯示方法 11.5.3 灰度圖像的顯示方法 11.5.4 索引圖像的顯示方法 11.5.5 RGB圖像的顯示方法 11.5.6 磁盤圖像的直接顯示 11.6 MATLAB圖形顯示命令 11.7 Visual C++和MATLAB圖形圖像處理應用實例 11.7.1 Visual C++中調(diào)用MATLAB函數(shù)畫圖 11.7.2 利用MATCOM繪制動態(tài)曲線 11.7.3 二維和三維曲線繪制綜合應用 11.8 小結(jié) …… 第12章 圖像識別 第13章 控制系統(tǒng)模型輸入和分析 第14章 控制系統(tǒng)的設計仿真 第15章 信號頻譜分析 第16章 數(shù)據(jù)采集和分析 第17章 Visual C++和MATLAB開發(fā)齒輪優(yōu)化設計系統(tǒng) 第18章 基于Visual C++和MATLAB的汽車ABS系統(tǒng)仿真 參考文獻

章節(jié)摘錄

版權(quán)頁:   插圖:   OOL將客觀事物描述成具有屬性和行為的對象,對象通過類來描述,通過抽象的方法來確定類對象的靜態(tài)屬性和動態(tài)行為。通過設計并定義類的接口使其可以與外界發(fā)生聯(lián)系。對象與對象之間通過發(fā)送和接收消息進行通信。這種機制使得程序的各個模塊之間的關(guān)系更為簡單,另外類的繼承與多態(tài)性等特性更有助于實現(xiàn)代碼重用,從而提高軟件開發(fā)效率。 2.1.2類、對象和消息 本節(jié)將介紹OOL的幾個重要概念,包括對象、類、封裝、繼承、消息等,不同類型的OOL都會涉及這些概念的全部或者部分。 1.對象(Object) 對象是指客觀世界中實際存在的事物,包括有形對象和無形對象。有形對象是指物理上存在的實體,例如,企業(yè)的生產(chǎn)車間、機床、刀具、計算機、設計手冊等;無形對象是指物理上不存在的對象,如計算機中的一個項目計劃、一個機床的總裝配圖紙等。通常使用靜態(tài)特征和動態(tài)特征來描述對象。 靜態(tài)特征是使用數(shù)據(jù)對對象的特征進行描述,如汽車的顏色、重量、車身的材料等;動態(tài)特征是體現(xiàn)對象的行為或具有的功能,如汽車的剎車、自動導航的功能等。在實際編程語言的實現(xiàn)中,對象由類進行定義,類由一批屬性和對這批屬性進行操作的服務實現(xiàn)。 2.類(Class) 類是指具有相同屬性和服務的一組對象的集合。類為隸屬于該類的全部對象提供了抽象的描述,包括屬性和操作服務。也就是說,類是對象的抽象,而對象是類的具體實例。在編程語言中,對象是具體的,占用存儲空間,而類是抽象的,不占用內(nèi)存。例如,如果將機床定義為一個基礎(chǔ)類,那么屬于該類的CA6140車床就是一個具體的機床對象。 3.繼承性(Inheritance) 對象的核心包括繼承性(Inheritance)、封裝性(Encapsulation)和多態(tài)性(Polymorphism)等重要特性。繼承性用于基礎(chǔ)類和特殊類之間的關(guān)系描述。定義基礎(chǔ)類時,需要在基礎(chǔ)類中包括基本屬性和操作服務,特殊類的對象可以從基礎(chǔ)類獲取其全部基本屬性與操作服務。獲取的方式就是通過繼承實現(xiàn)。例如,若將機床定義為一個基礎(chǔ)類,那么車床就可以定義為一個特殊類,即車床的很多基本屬性(顏色、重量、材料等)和操作服務(切削、換刀等)都可以從基礎(chǔ)類——機床通過繼承的方式獲得。繼承性便于軟件復用,可以有效地提高軟件開發(fā)效率。 4.封裝性(Encapsulation) 封裝性是指將對象的屬性和操作服務結(jié)合成一個獨立的對象特性。通過封裝性實現(xiàn)信息隱蔽,即盡可能隱蔽對象的內(nèi)部細節(jié),只提供有限的接口,其他對象如果想訪問該對象,只需要通過相應接口調(diào)用其屬性和操作函數(shù),而不需要了解其內(nèi)部結(jié)構(gòu)。例如,SolidWorks、Pro-E等三維軟件都提供了經(jīng)過封裝的圖形操作類,用戶若想在SolidWorks、Pro-E等CAD(Computer Aided Design)系統(tǒng)上構(gòu)建自己的繪圖系統(tǒng),只需要調(diào)用相應類的屬性和API函數(shù),就可以實現(xiàn)相應的功能,不需要具體了解類內(nèi)部的函數(shù)是如何繪圖的細節(jié)。 5.多態(tài)性(Polymorphism) 多態(tài)性是指在基礎(chǔ)類中定義屬性或操作,特殊類繼承基礎(chǔ)類的屬性或操作后,可以存在不同的數(shù)據(jù)類型或表現(xiàn)出不同的操作結(jié)果。即同一屬性或操作結(jié)果在基礎(chǔ)類及其多個特殊類中具有不同的功能實現(xiàn)形式。例如,三維CAD系統(tǒng)中基礎(chǔ)類“三維幾何實體”中定義了一個操作函數(shù)“三維實體建模”,但并不確定構(gòu)建一個什么樣的三維實體??梢栽凇叭S幾何實體”基礎(chǔ)類上定義多個特殊的類,如“圓柱體”、“正方體”、“圓錐體”等,它們繼承基礎(chǔ)類的所有屬性和操作函數(shù),但其定義的功能算法不同。當特殊類對象接到“建?!泵钚畔r,不同對象執(zhí)行不同的算法,將構(gòu)建不同的三維實體。 6.消息(Message) 消息是對象之間實現(xiàn)交互、發(fā)生聯(lián)系的重要方法。通過消息可以實現(xiàn)對象之間的通信。消息的實現(xiàn)機制為請求對象向服務對象發(fā)出服務請求,服務對象根據(jù)請求的情況進行信息處理和運算,處理結(jié)束后,將消息返回給請求對象。消息結(jié)構(gòu)主要包含提供服務的對象標識、服務標識、輸入信息和回答信息等。通常通過調(diào)用函數(shù)來實現(xiàn)消息處理。 通過綜合利用以上提到的封裝性、繼承性、多態(tài)性等面向?qū)ο筇匦?,編程人員可以編寫出比面向過程模型更健壯,更好地支持代碼重用,更具擴展性的程序。類層次結(jié)構(gòu)是重用代碼的基礎(chǔ);封裝性使得編程人員不必修改公有接口的代碼即可實現(xiàn)程序的移植:多態(tài)性能開發(fā)出簡潔、易懂、容易修改的代碼。通過使用面向?qū)ο蟮脑O計原則,編程人員可以把復雜程序的各個組件進行組合,構(gòu)成一個可靠、易于維護和移植的軟件系統(tǒng)。

編輯推薦

《精通MATLAB混合編程》全面講解MATLAB與C++混合編程的主流技術(shù)提供近50個實例項目,介紹MATLAB與C++的7大混合編程應用配2個緊密結(jié)合工程實際的項目案例:工程開發(fā)實踐——齒輪優(yōu)化設計系統(tǒng);汽車仿真應用——汽車ABS系統(tǒng)仿真。書中并配套光盤,提供了每章實例的源程序?!毒∕ATLAB混合編程》不僅適合高等學校理工類研究生或者高年級本科生作為學習Visual C++和MATLAB混合編程的教材,也可供從事MATLAB進行工程設計和仿真的技術(shù)人員參考使用。同時書中提供的大量實例也可供高級用戶參考。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    精通MATLAB混合編程 PDF格式下載


用戶評論 (總計15條)

 
 

  •   真心不錯的總結(jié) 對混合編程總結(jié)的很全面
  •   講解到位,光盤配合,很實用!
  •   沒有看,不知道如何?希望別讓我失望!
  •   內(nèi)容夠全面,但不夠詳細,一般
  •   買一本支持一下,價格要是再少點就好了
  •   書寫的很詳細,很好
  •   沒細看,翻了一下,還不錯
  •   不足的是,書名是混合編程,但只講了與C/C++有混合編程,如果加些與其他語言混編可能更好。
  •   好好好愛好愛好
  •   Matlab的混合編程很難的,希望通過這本書能有所收獲
  •   在亞馬遜買了這么多書,唯一一本不滿意的,沒有外包裝,立面的紙張質(zhì)量也不好,像盜版或者舊書
  •   版面很工整,帶盤,質(zhì)量不錯
  •   剛剛收到書,內(nèi)容還沒有看。
  •   個人很不喜歡。。這么厚的書。講得內(nèi)容都太粗糙。一些簡單的東西,用大段的內(nèi)容。而實用的技術(shù)又沒講透。不建議購買
  •   還是很不錯的一本書,對自己的研究挺有幫助
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7