-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

MATLAB面向對象程序設計

( 簡體 字)
作者:苗志宏,馬金強類別:1. -> 工程繪圖與工程計算 -> Matlab
譯者:
出版社:電子工業出版社MATLAB面向對象程序設計 3dWoo書號: 38770
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:7/1/2014
頁數:268
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787121233449
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序一
  很榮幸受電子工業出版社張國霞編輯之邀,代表MathWorks公司為出版社新書《MATLAB面向對象程序設計》作序,同時也感謝該書作者苗志宏、馬金強兩位老師選取了這么一個獨特的視角來闡述MATLAB軟件功能的強大,這在市場上眾多介紹MATLAB程序設計語言或專業工具箱應用的書籍中顯得非常特別。
  從MATLAB自身定位來說,這是一種用于數值計算、可視化及程序設計的高級語言和交互式環境。使用 MATLAB,可以分析數據、開發算法、創建模型和應用程序。借助其語言、工具和內置數學函數,可以探求多種方法,比電子表格或傳統程序設計語言(如 C/C++ 或 Java)更快地求取結果。但正是由于其豐富的庫函數和靈活的程序設計風格,使得很多用戶喜歡將MATLAB看作是一系列函數的集合,或者直接就是一系列對電腦下達的指令,從而忽視了程序的嚴謹與規范,使得在進行大型應用程序和數據結構的開發和維護時捉襟見肘。
  從程序開發的角度來說,面向對象是一種程序設計規范,同時也是一種程序開發的方法。對象指的是類的實例。將對象作為程序的基本單元,把程序和數據封裝于其中,以提高軟件的重用性、靈活性和擴展性。從R2008a開始,MATLAB在這個方面終于有了一系列的重大更新,全新定義了如何在MATLAB中進行面向對象程序設計,比如:在類定義文件中如何定義各種屬性、方法和事件,并控制其訪問屬性;通過定義句柄(handle)類,利用引用(reference)行為來處理類,幫助數據結構的創建,如鏈表;事件和監聽特性,允許監控對象屬性的變化和行為等。這些基本特征都在本書中得到了詳細的介紹。
  如作者所述,目前流行的C++、Java以及C#語言都是支持面向對象程序設計的語言,我們完全可以在這些語言上利用面向對象程序設計方法設計出復雜的應用軟件。然而MATLAB具有強大的數據可視化功能以及包含諸多面向不同領域的工具箱,并且它是一個開放式、可擴展的程序設計環境,因此,可以充分利用MATLAB所提供的這些工具箱和各種功能,以面向對象的程序設計方法來更加方便、快捷地設計應用程序,以便解決不同領域中的實際問題。
  因此,我相信隨著此書的出版,必將大大方便大家對MATLAB面向對象程序設計的學習,加強MATLAB在該領域中的推廣,提升大家的工程應用能力。在此,我鄭重向大家推薦此書。
  
MathWorks 中國教育業務發展總監
陳煒博士
2014年5月于上海

推薦序二
面向對象程序設計(Object-oriented programming,OOP)是建立在對事物科學分類和描述基礎上的程序設計方法,采用面向對象方法可以使系統各部分各司其職、各盡所能,為程序設計人員敞開了一扇大門,使程序設計的代碼更簡潔、更易于維護,并且具有更強的可重用性。
使用MATLAB將近10年了,MATLAB在R008a正式公開引入面向對象程序設計,OOP的加入使科學計算語言MATLAB更完美、更完整和更系統。本人也是MATLAB OOP的勇敢嘗鮮者,目前寫的絕大部分代碼均采用面向對象的形式。
Package:相當于C++中的命令空間。程序員可用的單詞數并不太多,并且不同人寫的程序不可避免地出現函數重名現象,Package可以有效地解決這個問題。Package可以包含函數(Function)、類(Class)和包(Package)等。MATLAB安裝目錄下有很多“+”開頭的文件夾就是Package。
Class:MATLAB包含數值類(Value)和句柄類(Handle),其中句柄類相當于C++中的引用(Reference),這是MATLAB語言自身的革命。有了句柄類,就可以在一個地方修改類屬性,所有類對象拷貝中同步更新,同時句柄類提供了事件監聽。MATLAB安裝目錄下有很多“@”開頭的文件夾就是Class。
Properties:MATLAB 的Properties相對其他程序設計語言擁有更多的特性,使用戶能更好地控制自己的Properties。唯一的遺憾就是不支持static特性。
Methods:同樣,MATLAB 的Methods具有很多特性,輔助控制用戶權限等。類似C#,MATLAB為Properties提供了兩個特殊的方法:set()和get(),它們極大地豐富了對Properties的控制,一般set()方法最好配合AbortSet特性。
Event:事件是類似于MFC的消息,但是比消息更加強大,C++沒有事件的概念。當事件發生的時候,Event定義類可以將事件廣播出去,所有監聽該事件的類均會收到這個消息,然后各自采取相應行動。Event在不修改原始類的前提下,完成了1對N的過程。
Enumeration:MATLAB將枚舉作為一種特殊的類,MATLAB枚舉類相對其他語言有兩個優勢,一是繼承于數值類的枚舉對象支持數學運算,比如Color.Red+Color.Blue;二是允許多個枚舉對象使用相同的值,比如Switch.On、Switch.Open和Switch.True都可以等于1,它們表示同一個枚舉值。
本書是國內介紹和推廣MATLAB面向對象程序設計的先驅,相信本書的讀者在閱讀完書籍內容以后,對MATLAB有一種更新、更全、更高的認識:MATLAB不僅僅是一條條指令的集合和一個個工具箱的累加,它還是一種完整的、系統的高級科學計算程序設計語言。
如果邁粉們在MATLAB學習和使用過程中遇到任何疑問,尤其是Simulink基于模型設計方面,歡迎大家來網站http://www.matlabsky.com交流。另外本人編著的《MATLAB圖像處理30個案例分析》一書預計在今年出版,歡迎點評指正。


MATLAB技術論壇創始人
詹福宇(Dynamic)
2014年5月 于成都

推薦序三
MATLAB是一種面向對象的高級程序設計語言,有著簡單的語法規則和包羅萬象的工具箱,在多個領域均有廣泛的應用,受到越來越多程序開發人員的青睞。面向對象的程序設計,就是把面向對象的思想應用到軟件工程中,并指導開發維護軟件。MATLAB吸取了面向對象程序設計語言的優點,將數據和對數據的各種操作封裝成類,通過創建類對象(即類的實例),調用類方法完成對數據的操作。這樣做不僅增強了數據的安全性,而且提高了代碼的可重用性、可維護性和可擴展性,這也使得進行大型應用程序的開發、維護變得更加便捷。
國內出版的有關MATLAB的著作可謂汗牛充棟,然而系統介紹MATLAB 面向對象程序設計的著作并不多見,這也正是本書的價值所在。在MATLAB新近發布的版本中,出現了越來越多的類,接觸過新版本的用戶也會覺得MATLAB越來越好用,但是大部分的用戶并不知道什么是MATLAB類,而本書結合實例,用樸實和嚴謹的語言系統介紹了MATLAB 面向對象程序設計的基本概念和程序實現方法。我認為這是一本非常值得向希望系統學習MATLAB面向對象程序設計技術的程序開發人員、工程技術人員、科研人員和高校學生推薦的好書,在此書即將出版之際,我很榮幸為本書作序,向廣大讀者推薦此書。

MATLAB技術論壇創始人
天津科技大學理學院計算科學實驗室主任
謝中華
2014年5月

前 言
MATLAB是MathWorks公司針對科學和工程計算開發的一款交互式軟件,目前已發展成為集數值處理、圖形處理、數學建模、實時控制、動態仿真和信號處理為一體的數學應用軟件,并且成為目前世界上使用最廣泛的科學計算軟件之一。
雖然MATLAB的早期版本中已有類的概念,但其功能一般。從MATLAB R2008a開始,MathWorks對MATLAB的面向程序設計進行了一些重大更新,吸取了面向對象程序設計語言的優點,除了支持封裝、繼承和多態這些基本特征外,還支持包括屬性、事件等新的特征,這使得進行大型應用程序的開發、維護變得更加便捷,并顯著增加代碼的可重用性、可維護性和可擴展性。
然而,目前國內圖書市場上有關MATLAB的書籍多偏重于MATLAB語言程序設計介紹和各種工具箱的專題介紹,專門介紹MATLAB面向對象程序設計的書籍還很少見到,只是在部分書籍中簡單提及過。另一方面,目前大多數MATLAB的使用者在編寫程序時常采用面向過程的結構化設計思想來組織程序,MATLAB面向對象程序設計的方法還較少被使用。
結構化程序設計方法由于采用了模塊分解與功能抽象以及自頂向下、分而治之的策略,從而有效地將一個復雜的程序設計系統的設計任務分解成許多易于控制和處理的子任務,使其便于開發和維護。但是它的缺點是:把數據與對數據的操作分離開來,數據的安全性很難得到保證;當數據結構發生改變時,所有相關的處理函數都要進行相應的修改,程序的可重用性差;特別是在開發圖形用戶界面應用程序時,程序的開發越來越困難。而面向對象程序設計強調直接面對客觀存在的事物來進行軟件開發,將人們認識事物的習慣思維方式應用于軟件開發中。面向對象程序設計將數據和對象數據的操作封裝在一起,形成一個有機的整體,使程序模塊之間的關系更加簡單、獨立性更強,這樣就使數據的安全性得到良好的保障。此外,通過面向對象程序設計的繼承和多態機制可以大大提高程序的可重用性,從而提高程序開發的效率。
目前流行的C++、Java以及C#語言都是支持面向對象程序設計的語言,我們完全可以基于這些語言,利用面向對象程序設計的方法設計出復雜的應用軟件。然而MATLAB具有強大數據可視化功能以及包含諸多面向不同領域的工具箱,并且它是一個開放式、可擴展的程序設計環境,因此可以充分利用MATLAB所提供的這些工具箱和各種功能,以面向對象程序設計的方法來更加方便、快捷地設計應用程序,從而解決不同領域中的實際問題。
為此,我們經過幾年來的不斷教學和實踐,精心編寫了《MATLAB面向對象程序設計》一書,全書按照面向對象程序設計的基本特征為主線,兼顧了MATLAB中一些特有功能,合理組織內容,力求知識點講解透徹,同時盡可能多地穿插應用實例。全書共11章,具體內容如下。
第1章:MATLAB概述,介紹MATLAB的發展歷程、體系結構、主要特征,MATLAB的安裝與運行,MATLAB的集成環境和幫助系統的使用,MATLAB程序設計基礎知識以及MATLAB圖形用戶界面的設計。
第2章:MATLAB面向對象程序設計概述,介紹面向對象程序設計的基本思想、特征,MATLAB中面向對象程序設計的基本流程、特點以及與其他面向對象程序設計語言的區別等。
第3章:按照“封裝”的基本特征,主要介紹MATLAB面向對象程序設計中的核心概念“類及對象”,詳細介紹在MATLAB下如何聲明一個類、如何創建一個對象、如何編寫一個類的構造函數以及類成員的訪問控制等問題。這一章以介紹value型類為主。
第4章:主要介紹MATLAB下“繼承與派生”有關的一些概念,如繼承與派生、基類與派生類、單繼承和多重繼承等。
第5章:主要介紹handle型類和對象的概念、handle型類析構函數的定義、深拷貝和淺拷貝原理、如何使屬性成員實現句柄圖形類型的標準set/get接口風格以及在類中動態添加屬性成員的過程。
第6章:主要介紹MATLAB面向對象程序設計中的對象陣列的創建過程。
第7章:按照“多態性”的基本特征,介紹MATLAB面向對象程序設計中的函數重載、運算符重載等內容。
第8章:主要介紹事件和聽眾的概念,以及如何使用事件模型來實現基于事件驅動的、具有交互響應功能的程序設計過程。
第9章:主要講解MATLAB中枚舉的作用、枚舉類的定義方法和使用等。
第10章:主要講解元類的基本概念,元類、元對象的使用方法,并結合實例詳細介紹如何利用類元數據獲取類信息的步驟、方法等。
第11章:綜合前面介紹的內容,將MATLAB面向對象程序設計方法應用到關于倒立擺控制仿真設計和元胞自動機模擬設計問題中。
本書編寫過程中大量參考了MATLAB軟件幫助文檔中的相關內容和實例;在涉及MATLAB的基本操作中,參考了文獻[1~6]中的部分內容;在講解面向對象程序設計的基本原理時,參照了文獻[7~10]的部分內容;在元胞自動機模擬實現中,參考了文獻[11~12]的部分內容。在此,向這些作者們表示謝意。作者在編寫本書的過程中,對于書中每個原理都親自在MATLAB上進行了檢驗,并為此編寫了大量的驗證性代碼,某些部分的內容描述是作者歸納總結的結果,書中多數應用實例的程序設計具有一定的原創性。
本書由苗志宏負責統稿工作,并編寫了第3、4、5、6、7、8、11章的內容,馬金強編寫了第1、2、9、10章的內容,李智慧參與了書稿的審閱工作。本書寫作之初還得到了電子工業出版社張國霞編輯的鼓勵和支持,在此深表謝意。由于作者能力所限,又是初次將MATLAB中面向對象程序設計的內容進行歸納、總結,書中難免存在錯誤和不足之處,誠摯歡迎各位同行、讀者的批評指正。作者電子郵箱地址:miaozhh@21cn.com。

苗志宏
2014年5月9日
內容簡介:

本書以面向對象程序設計方法的基本特征(抽象、封裝、繼承、多態)為主線,由淺入深、循序漸進地展開,系統介紹了MATLAB面向對象程序設計的思想、設計方法等。全書重點突出、通俗易懂,各章節提供大量的程序代碼供讀者參考練習,多數章節安排了相應的應用實例。全書分為11章,主要分為三部分:一是MATLAB基本操作和程序設計基礎、面向對象程序設計思想,以及MATLAB面向對象程序設計特點等(第1~2章);二是詳細介紹了MATLAB中面向對象程序的開發過程和設計方法(第3~10章);三是MATLAB面向對象程序設計方法的綜合應用實例(第11章)。
本書內容詳實、科學合理,圖文并茂、實例豐富,講解系統透徹,通過本書的學習讀者可以很快理解MATLAB面向對象程序設計的基本思想,掌握其設計方法,提高利用MATLAB解決問題的能力和效率。

目錄:

第1章 MATLAB入門 1
1.1 MATLAB概述 1
1.1.1 MATLAB的發展史 1
1.1.2 MATLAB體系結構 2
1.1.3 MATLAB功能特點 2
1.2 MATLAB的安裝與運行 4
1.2.1 MATLAB的安裝與激活 4
1.2.2 MATLAB的啟動與退出 7
1.3 MATLAB開發環境 7
1.3.1 菜單欄 8
1.3.2 工具欄 12
1.3.3 MATLAB的窗口 12
1.4 MATLAB幫助和演示系統 17
1.4.1 命令窗口幫助系統 17
1.4.2 聯機幫助 18
1.4.3 聯機演示系統 19
1.5 矩陣及其運算 20
1.5.1 創建矩陣 20
1.5.2 矩陣訪問 23
1.5.3 矩陣的賦值 24
1.5.4 矩陣的四則運算 25
1.5.5 點運算 26
1.5.6 矩陣的其他運算 27
1.5.7 矩陣操作 30
1.6 MATLAB圖形用戶界面設計 32
1.6.1 圖形對象和句柄 32
1.6.2 圖形窗口及坐標軸 34
1.6.3 用戶界面對象 37
1.6.4 圖形用戶界面設計開發環境 41
1.7 小結 46
思考與練習 46
第2章 MATLAB面向對象程序設計概述 47
2.1 MATLAB程序設計基礎 47
2.1.1 MATLAB的變量及數據類型 47
2.1.2 運算符與操作符 50
2.1.3 M文件介紹 51
2.1.4 函數的類型 54
2.1.5 MATLAB的程序設計原則 55
2.2 面向對象程序設計方法簡介 56
2.2.1 程序設計方法的發展概述 56
2.2.2 面向對象程序設計方法 56
2.2.3 面向對象程序設計方法的優越性 57
2.2.4 面向對象程序設計的基本概念 57
2.2.5 面向對象程序設計方法中的基本特征 58
2.3 MATLAB面向對象程序設計簡介 59
2.3.1 MATLAB中的類和對象 59
2.3.2 MATLAB中類的設計、定義 61
2.4 MATLAB面向對象程序設計特點 63
2.4.1 MATLAB面向對象程序設計的特點 63
2.4.2 MATLAB面向對象程序設計與其他語言 63
2.5 小結 64
思考與練習 64
第3章 MATLAB中的類和對象 65
3.1 類的聲明 65
3.1.1 類的聲明 65
3.1.2 對象的創建和使用 66
3.1.3 類的特屬性 67
3.1.4 類定義的組織形式 67
3.1.5 命名空間和包 68
3.2 類的屬性成員及訪問控制 71
3.2.1 屬性成員的聲明和初始化 71
3.2.2 屬性成員的特屬性 71
3.2.3 屬性成員的set和get方法 74
3.2.4 屬性成員的訪問控制 77
3.3 類的方法及訪問控制 78
3.3.1 普通方法及訪問控制 79
3.3.2 構造函數 81
3.3.3 靜態方法 83
3.3.4 類型轉換方法 85
3.4 類的組合 87
3.4.1 內嵌對象 88
3.4.2 類的優先級問題 88
3.4.3 對象的保存與加載 91
3.5 小結 92
思考與習題 93
第4章 MATLAB中的繼承與派生 94
4.1 類的繼承與派生 94
4.1.1 繼承與派生的概念 94
4.1.2 派生類的定義 95
4.1.3 派生類生成過程 96
4.1.4 用派生類創建一個類的別名 99
4.2 派生類的構造函數 99
4.2.1 構造函數的建立 99
4.2.2 派生類構造函數執行的順序 102
4.3 多重繼承中的成員標識問題 104
4.3.1 屬性成員名稱沖突 105
4.3.2 方法名稱沖突 105
4.3.3 事件名稱沖突 107
4.4 指定容許派生的類 108
4.5 類成員的訪問控制 109
4.5.1 屬性成員的訪問控制 109
4.5.2 方法的訪問控制 110
4.5.3 事件的訪問控制 114
4.6 定義MATLAB內置類型的派生類 115
4.6.1 MATLAB的內置類 115
4.6.2 定義MATLAB內置類的派生類 115
4.7 小結 120
思考與練習 120
第5章 handle型類 122
5.1 handle型類的聲明 122
5.2 類handle的介紹 124
5.3 屬性成員set/get接口的實現 125
5.4 動態屬性成員的實現 127
5.5 handle型類的析構函數 130
5.6 handle-兼容類 135
5.7 深拷貝與淺拷貝 136
5.7.1 深拷貝與淺拷貝的概念 136
5.7.2 matlab.mixin.Copyable類簡介 138
5.7.3 深拷貝的實現 139
5.8 應用實例 142
5.8.1 問題的提出 142
5.8.2 類的設計 142
5.8.3 源程序及運行效果 143
5.9 小結 146
思考與練習 146
第6章 對象陣列 147
6.1 MATLAB中常用的陣列形式 147
6.1.1 陣列的概念 147
6.1.2 幾種常用的陣列 147
6.2 創建對象陣列 153
6.2.1 如何創建對象陣列 154
6.2.2 在對象陣列上添加動態屬性成員 157
6.3 不同類型對象組成的對象陣列 158
6.3.1 不同類型對象的連接 158
6.3.2 轉換方法的實現 159
6.4 多相對象陣列 160
6.4.1 matlab.mixin.Heterogeneous類及多相陣列創建 161
6.4.2 多相陣列的下標索引和連接 162
6.4.3 convertObject方法 163
6.5 小結 164
思考與練習 164
第7章 多態性 165
7.1 函數重載 165
7.2 運算符重載 169
7.2.1 運算符重載的實現 170
7.2.2 運算符重載中的優先級問題 172
7.2.3 subsref和subsasgn的重載 173
7.3 抽象類 179
7.3.1 抽象類的定義 179
7.3.2 有關抽象類的特殊規定 180
7.3.3 一個例子 180
7.4 小結 183
思考練習 183
第8章 事件與聽眾 185
8.1 事件與聽眾的概念 185
8.1.1 事件的概念及事件模型 185
8.1.2 聽眾的概念 186
8.2 定義事件和聽眾 186
8.2.1 如何命名一個事件 186
8.2.2 事件觸發和廣播 188
8.2.3 如何響應事件(聽眾的定義) 189
8.2.4 聽眾的幾種創建方式 190
8.2.5 回調函數定義和調用 191
8.2.6 一個例子 192
8.3 屬性成員事件的收聽 197
8.3.1 屬性成員事件 197
8.3.2 為屬性成員事件創建聽眾 198
8.3.3 為聽眾定義回調函數 199
8.3.4 屬性成員的AbortSet屬性 199
8.4 動態屬性成員事件響應 201
8.5 應用實例 204
8.5.1 問題的提出 204
8.5.2 類的設計 204
8.5.3 源程序及運行效果 205
8.6 小結 209
思考與練習 209
第9章 枚舉 210
9.1 枚舉概述 210
9.1.1 相關術語 210
9.1.2 枚舉類型的分類 210
9.2 枚舉類的定義和使用 211
9.2.1 枚舉類的定義 211
9.2.2 枚舉類中的方法 212
9.2.3 在枚舉類中定義屬性成員 212
9.2.4 枚舉類的使用 213
9.2.5 枚舉類與陣列 216
9.2.6 枚舉類的構造函數調用順序 216
9.2.7 枚舉類在應用中的一些限制 217
9.3 小結 218
練習與思考 218
第10章 利用類元數據獲取類信息 219
10.1 類元數據簡介 219
10.1.1 相關概念 219
10.1.2 元類對象的創建和使用方法 219
10.2 元數據的使用 220
10.2.1 使用元數據查閱類和對象 220
10.2.2 查找具有指定設置的對象 223
10.2.3 獲得關于屬性成員的信息 225
10.2.4 獲得屬性成員的默認值 228
10.3 小結 230
思考與練習 230
第11章 綜合應用實例 231
11.1 倒立擺控制演示實例 231
11.2 元胞自動機演示實例 237
11.3 小結 242
思考與練習 242
附錄 MATLAB中的函數分類索引 243
參考文獻 251
序: