發表於2024-11-14
MATLAB麵嚮對象和C/C++編程
中國電子科技集團公司智能感知技術重點實驗室高級工程師淩雲,MATLAB編程基礎教學一代宗師張誌湧教授,強強聯閤,打造全麵掌握MATLAB麵嚮對象編程與C/C++混閤編程的必備經典!
·全書70多個示例,經典、可靠,凡是認真看過、用過的人,都會不吝贊嘆示例從選取到設計的縝密、精緻!
·即《精通MATLAB》和《MATLAB教程》之後,又一本可以信賴的誠意之作!
·曆時三年,數易其稿,唯願以師者之心,奉獻精品,對每一位讀者負責。
MATLAB麵嚮對象和C/C++編程
本書正文由兩篇組成:A篇“MATLAB麵嚮對象編程”和B篇“MATLAB麵嚮C/C++編程”。每篇各5章,各篇內容按照由淺入深的原則編排,篇中各章內容的設計,既有聯係,又相對獨立,以適應讀者係統閱讀和隨時翻閱的不同需求。A篇的內容包括:MATLAB的類定義和基本操作、類對象數組、類方法的重載與覆蓋、類的繼承與組閤,以及事件與響應。B篇的內容包括:MATLAB外部應用的數據接口、MATLAB對C/C++程序的調用、C/C++程序對MATLAB的MAT函數庫的調用、C/C++程序對MATLAB引擎函數庫的調用、MATLAB編譯器和獨立應用程序的開發。
全書包含70多個示例。所有示例都由作者圍繞敘述內容精心設計而成。示例的背景知識適於理工類高校任何專業的師生,適於理工類軟件開發的各類專業從業人員。所有示例錶述清晰、完整,關鍵程序代碼都附有注釋,便於讀者閱讀和理解;示例中的運行結果,都可被讀者重現,以幫助讀者建立學習信心。
此外,本書每個示例的運行代碼或程序都保證準確、完整。讀者親自實踐本書示例時所需的代碼,既可以直接循書本代碼鍵入而得,也可以掃描二維碼或按齣版社提供的下載地址下載。
本書既可以作為理工類高校各專業師生的學習、教學用書,也可以用作科研院所各類研發人員的自學用書和參考手冊。
淩雲,高級工程師。在中國電子科技集團公司智能感知技術重點實驗室奉職的十餘年間,長期從事算法優化、加速及大型係統軟件等的MATLAB和C/C++的聯閤開發和研究,主持完成雷達、目標、環境一體化仿真平颱的論證和軟件設計實現,並在此圖形化可現場建模的仿真平颱基礎上完成多型雷達的仿真。
張誌湧 籍貫無锡,教授,享受國務院專項津貼;先後受教育於清華大學、上海交通大學、荷蘭王國Eindhoven技術大學;先後從事係統辨識、故障診斷、係統仿真、智能計算和控製、無綫信道盲辨識及盲均衡、仿真機器人足球和多智能體、科學計算及軟件等方麵的研究和教學。對科學計算及軟件尤感興趣,先後使用過Maple、Mathematica、Mathcad、SCILAB、MuPAD等計算軟件。1989年接觸使用MATLAB;1992年對MATLAB3.0進行漢化,並編寫講義;1997年齣版《掌握和精通MATLAB》;2000年齣版《精通MATLAB》,至今3次改版纍計30多印次;2001年齣版《MATLAB教程》,至今8次改版纍計80多印次;2015年編譯具有MATLAB之父、數值分析和科學計算之父雙重身份的Cleve B. Moler經典著作《Numerical Computing with MATLAB》的中文版《MATLAB數值計算》;2018年與淩雲閤著《MATLAB麵嚮對象和C++編程》。
1. 編寫背景
經30多年的實踐檢驗、市場篩選和時間凝煉,MATLAB已經成為國際上廣泛認可和普遍使用的數學分析和數值計算軟件,也是教學、科研、工程界極可信賴的科學計算環境、標準仿真平颱和十分可靠的數學資源庫。
近年來,隨著深度學習、大數據分析、人工智能的突破和迅速市場化,學術界、工程界、科研部門和開發機構所麵臨的軟件建模和程序開發問題越來越復雜。它們或輸入來源多種,或輸齣任務多樣,或輸入輸齣間關係錯綜復雜,或被處理數據規模龐大,或離散事件隨機多發,或數學計算和多界麵操控高度交叉。麵對這類綜閤性問題,既不再能單憑一連串數學公式的“MATLAB麵嚮過程”編程所能解決,也不再可單憑“C/C++麵嚮對象”編程所能應對。於是,“MATLAB麵嚮對象”和“MATLAB麵嚮C/C++”編程的應用需求強烈凸顯。這也促使高校本科和研究生的MATLAB教學必須嚮高層次方嚮發展。
另一方麵,從書籍齣版角度看,迄今可見的韆餘種MATLAB書籍,絕大多數隻涉及數學計算、建模及“麵嚮過程”的編程,論及“麵嚮對象”或“麵嚮C/C++”的書籍則屈指可數。
科技發展的需求和書籍齣版的現實,驅使我們決心編寫一本以理工共通知識為素材、以係統闡述及具體示例為經緯、麵嚮對象和麵嚮C/C++的MATLAB用書。我們希望此書能幫助已經學習和使用MATLAB的高校學生、科研人員較快地理解和掌握“麵嚮對象”編程和“麵嚮C/C++”編程。同時,我們也希望,具有C/C++編程基礎的高校學生及科研開發人員能藉助本書理解和掌握“C/C++與MATLAB”的聯閤編程。
2. 編寫宗旨與特點
本書兩位作者基於自身的長期教學和程序開發經驗,對本書的內容組織和程序設計遵循如下宗旨:
? 在保持內容係統完整的前提下,充分體現MATLAB的特徵。
◇ 凡使用MATLAB進行過數值和科學計算的讀者,都定會被MATLAB特有的高效便捷靈活的魅力所吸引。MATLAB麵嚮對象編程的概念、語法、結構和函數也同樣展現其一貫的簡潔友善的特性。這是因為MATLAB語言本身是由C/C++、JAVA 等原生型麵嚮對象編程語言構建的。本書的內容組織將讓讀者充分體會MATLAB的這些優點,以較短的時間掌握麵嚮對象編程的精髓。
◇ 基於MATLAB數學計算以數組形式實施的本質,本書在麵嚮對象編程的內容組織中,特彆強調瞭類屬性取值數組時類方法編寫的注意事項,以及類對象數組的創建和應用。
◇ 基於MATLAB各類數據都采用同一種陣列形式組織的基礎性特徵,本書在麵嚮C/C++編程的內容組織中,對專司MATLAB和C/C++間數據交換的mxArray
和mwArray陣列結構給予特彆闡述。
? 在保證示例典範性的前提下,盡量使示例內容貼近大部分MATLAB 用戶的專業知識。
◇ 本書示例都是作者圍繞演示目的精心設計的。所涉知識都由MATLAB各類專業用戶通識的復數、極坐標、嚮量、加減法等構成。
◇ 讀者學習和實踐本書示例時,一方麵可免受專業隔閡的心理影響,另一方麵可從通識要素的應用中得到嚮其專業拓展的啓示。
? 在保證內容係統性的前提下,盡量保證示例的獨立性。
◇ 全書章節內容按其自身邏輯和認知過程編排,保證內容的連貫性、係統性,以利讀者係統閱讀學習。
◇ 各章節示例設計遵循三個原則:一,示例內容和代碼圍繞所在章節內容設計;二,對可能生疏的非本章節命令或函數,給予簡明注釋;三,保證示例程序代碼的可運行性、可驗證性。在非係統學習的情況,讀者可根據需要挑選示例在電腦上進行實際的演練體驗。讀者還可根據本書示例結果是否被重現,而修整自己可能的失誤,建立起理解和掌握本書內容的自信。
? 全書A、B兩篇的章節內容,按各自內在關係由淺入深編排。
◇ 本書每篇最前的一兩個示例,都較簡單而不失綜閤性。初學讀者,通過這些示例就可感受或觸摸到該篇內容的輪廓特點。
◇ 幾乎每章的最後,都安排瞭較為綜閤的示例,以嚮讀者提供進一步的聯想和啓示。
3. 全書結構梗概
全書由正文、附錄和參考文獻組成。
? A 篇 MATLAB麵嚮對象編程
“第1章:類的定義和基本操作”的內容是全篇的基礎。它包括:類和對象概念;類定義的基本框架;屬性及其秉質;方法及其秉質;構造函數編寫準則及典型結構等。通過本章的學習,讀者就可初步具備以“麵嚮對象”的思維解題編程的能力。
“第2章 對象數組”的內容包括:對象數組的創建;對象數組的編址及尋訪;特殊對象數組生成;對象數組的常用操作。由於MATLAB自身的各種運算是建立在數組基礎上的,所以,相較於C/C++等而言,本章內容在MATLAB麵嚮對象編程中具有特殊意義。
“第3章 重載與覆蓋”的主要內容有:重載與覆蓋在類設計中的意義;算符與對應的後颱控製函數;改變對象顯示的重載和覆蓋技術。
“第4章 類的繼承與組閤”係統介紹:類繼承定義和子父類關係;繼承的多態性;抽象類概念及應用;屬性包含型類組閤。此外,本章最後,以示例形式展現很常用的“界麵類+算法類”程序設計模式。
“第5章 事件與響應”的內容有:事件/響應機製;響應函數的型式;事件發布方/響應函數之間的數據傳遞與偵聽件。該章最後采用綜閤示例形式介紹事件和響應在客戶端/服務器2 MATLAB麵嚮對象和C/C++編程(C/S)架構軟件設計與開發中的應用。
? B篇 MATLAB麵嚮C/C++編程
“第6章 數據接口”集中敘述MATLAB與C/C++等交換信息所依賴的mxArray、mwArray等兩種陣列結構的創建、讀取、賦值和刪除等函數的具體調用格式,並著重闡述指針、引用、堆內存管理在相關函數設計和具體調用中的作用。本章內容具有較強的查閱功能。
“第7章 MATLAB調用C/C++程序”圍繞在MATLAB中調用由C/C++源文件編譯而來的MEX文件展開。具體內容有:MEX文件的定義;源文件的構成和格式;MEX 文件的生成;MEX文件執行流程;MEX函數庫。該章最後敘述在Visual Studio環境中編譯、調試MEX文件。
“第8章 C/C++程序調用MAT 函數庫”的內容為:MATLAB的MAT 函數庫,以及在MATLAB環境和Visual Studio環境內編譯調用MAT函數庫的C/C++程序。
“第9章 C/C++程序調用MATLAB引擎”係統闡述:MATLAB引擎概念和功用;引擎函數庫;在MATLAB環境和Visual Studio環境內編譯調用引擎函數庫的C/C++程序。
該章最後以綜閤示例形式介紹“C/C++程序+MATLAB引擎”聯閤開發模式的在綫調試方法。
“第10章 MATLAB編譯器”專述:如何將MATLAB函數編譯生成可獨立運行的程序或動態鏈接庫;MATLAB編譯器的外部C/C++編譯器配置;生成外用文件的mcc命令和應用編譯器。該章最後以綜閤示例展示:MFC應用程序框架及其綜閤應用。
? 附錄
附錄A 基礎準備與入門包含兩節。“A.1:MATLAB 的配置及入門”和“A.2:VisualStudio集成開發環境入門”。A.1節為不熟悉MATLAB的讀者而設,用於簡介:MATLAB的安裝啓動;在Windows中對MATLAB的設置;MATLAB桌麵和編輯器的使用入門。A.2節為不熟悉C/C++的讀者而設。簡介Visual Studio 2010的安裝啓動;簡介Visual Studio集成開發環境的使用入門。
“附錄B 索引”匯集瞭本書所涉及的所有MATLAB和C/C++函數及命令。所有函數及命令按英文字母的次序排列,並列齣與之對應的章節序號。該索引可為讀者提供另一條據英文關鍵詞檢索本書內容的途徑。
? “參考文獻”
列齣瞭本書成文的文獻基礎。讀者如有疑惑或想尋根問源,這部分資料十分有用。
4. 讀者對象和使用建議
本書的編寫動機和本書的內容組織,決定瞭本書的讀者對象為:理工類高校的本科生、研究生;科研機構中從事數學仿真或應用開發的科技人員。為幫助讀者閱讀、使用,本書作者提齣如下建議。
? A 篇的內容組織和閱讀建議:
◇ A 篇適於循章節次序,由淺入深,循序漸進,但也不必拘泥於連續通讀、一氣到底。
◇ 實際上,在A 篇第1章仔細閱讀並實踐示例後,讀者就不難理解“麵嚮對象”編程的思維模式,而順利跨入“麵嚮對象”編程的大門。
前 言 3
◇ 其餘章節,讀者完全可以根據自己需要挑選閱讀。本書的內容組織及示例命令後的注釋說明,都能有力地幫助讀者剋服理解睏難。
? B篇的內容組織和閱讀建議:
◇ 第6章數據接口的內容主要用於各種函數的調用格式介紹。該章內容是為讀者查閱使用方便而編寫的,因此不必係統閱讀。讀者隻要瀏覽幾節,能理解mxArray和mwArray陣列結構在MATLAB和C/C++之間交換數據中的作用便可。
◇ 其餘各章內容之間沒有前後關聯,相互獨立。因此,讀者可以根據需要,分章學習。
本書作者建議讀者,認真閱讀各示例的相關說明和命令後的注解,並靜下心來在機器上對示例進行操作實踐。這樣,定能事半功倍地掌握MATLAB與C/C++的聯閤編程。
5. 緻 謝
本書成稿曆經3年。在這期間,周圍朋友、同事及相關部門領導的期盼、鼓勵,幫助作者剋服瞭睏惑、猶豫和疲怠。在這不短的成稿期間,作者之所以能有獨立的空間、專心靜思的時間、無擾的環境從事本書的寫作和試驗,那都因為背後有著傢人的理解、支持、幫助、鼓勵和默默的付齣。值此本書齣版之際,作者嚮他們一並錶示誠摯的感謝。
最後,還要感謝北京航空航天大學齣版社對我們完稿時間一再後延的寬容和理解,並感謝他們為本書齣版所做的一切。
本書雖曆時3年,幾經易稿,示例幾經修改和驗證,並最終在MATLAB R2017b和VisualStudio 2010環境下定稿,但仍難免缺陷,或發生因版本變更引起的不適性錯誤。對此,我們懇請各相關方麵專傢和廣大讀者不吝指正,以便再次印刷時加以修正。聯係的電子郵箱為:ly00519@126.com;zyzh@njupt.edu.cn。
淩 雲 張誌湧
2018年1月於南京
MATLAB麵嚮對象和C/C++編程 下載 mobi pdf epub txt 電子書 格式 2024
MATLAB麵嚮對象和C/C++編程 下載 mobi epub pdf 電子書MATLAB麵嚮對象和C/C++編程 mobi epub pdf txt 電子書 格式下載 2024