出版時間:2010-2 出版社:清華大學(xué)出版社 作者:甘才軍 頁數(shù):191
Tag標(biāo)簽:無
前言
理工科專業(yè)的大多數(shù)學(xué)生可能都有使用Matlab的經(jīng)驗(yàn)。筆者依稀記得在大學(xué)求學(xué)期間,第一次使用Matlab時的那種難以抑制的欣喜和激動:那是多么完美的一個作品!它提供了一個獨(dú)一無二的集成環(huán)境,讓你可以在它構(gòu)筑的虛擬實(shí)驗(yàn)室里輕松地開發(fā)和驗(yàn)證自己的算法、進(jìn)行系統(tǒng)仿真等多種工作;它還提供了豐富的圖形用戶界面,使得用戶得以直觀地觀察自己的數(shù)據(jù)。Matlab所提供的虛擬實(shí)驗(yàn)室無疑是令人嘆為觀止、流連忘返的。盡管如此,你終將不得不走出這個美妙的實(shí)驗(yàn)室,去解決現(xiàn)實(shí)世界的實(shí)際問題。例如,一個過程控制系統(tǒng)開發(fā)人員在Matlab環(huán)境中成功驗(yàn)證自己的算法后,必須將這個算法集成到實(shí)際系統(tǒng)中,不得不考慮一些實(shí)際問題,其中之一是系統(tǒng)能否脫離Matlab環(huán)境而獨(dú)立運(yùn)行以及運(yùn)行效率問題。筆者在攻讀碩士學(xué)位時,就曾遇到過類似的困惑。當(dāng)時要把一個用.Matlab編寫的過程控制算法移植到C++程序中(該程序最終要在工控機(jī)上運(yùn)行),而這個算法涉及大量的矩陣運(yùn)算,其中有矩陣求逆、sqr分解等。若是在Matlab環(huán)境下,幾個簡單的運(yùn)算符和函數(shù)就輕松搞定,但面對的實(shí)際問題是,得用c++程序重寫算法,這是多么可怕的任務(wù)!雖然最后花了九牛二虎之力總算是解決了任務(wù),但仍不盡完美。那時,頭腦中的一個想法日漸清晰:為什么不采用由Matlab來完成復(fù)雜的矩陣運(yùn)算,而C++程序只是給出一個前臺界面的程序工作方式呢?通過閱讀Matlab的幫助文檔和相關(guān)出版物了解到,Matlab外部接口提供了這種方式,即使用Matlab引擎進(jìn)行矩陣計(jì)算,通過動態(tài)數(shù)據(jù)交換機(jī)制和應(yīng)用程序前臺進(jìn)行數(shù)據(jù)交換。當(dāng)筆者懷著無比激動的心情重寫了C++程序后,拿到實(shí)際的運(yùn)行環(huán)境工作時,卻發(fā)現(xiàn),根本不能滿足實(shí)際要求,程序執(zhí)行效率太低,根本無法滿足對設(shè)備的實(shí)時控制要求。
內(nèi)容概要
通過本書,讀者將能夠應(yīng)用Matlab C++數(shù)學(xué)庫,利用可視化應(yīng)用程序開發(fā)工具Borland C++Builder開發(fā)出獨(dú)立于Matlab環(huán)境的應(yīng)用程序。 全書分為10章,內(nèi)容主要包括:引言(第1章);C++面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(第2章);Matlab C++數(shù)學(xué)庫的組成、安裝和配置(第3章);Matlab C++數(shù)學(xué)庫基礎(chǔ)類——mwArray(第4章);運(yùn)算符重載(第5章);庫函數(shù)的調(diào)用方法(第6章);異常處理(第7章);作者對Matlab C++數(shù)學(xué)庫的有關(guān)擴(kuò)展(第8、9章);最后作者還結(jié)合幾個相關(guān)領(lǐng)域介紹了基于Matlab C++數(shù)學(xué)庫的解決方案(第10章)。本書在論述中,始終貫穿了“Matlab C++數(shù)學(xué)庫的應(yīng)用”這一主線,力求理論聯(lián)系實(shí)際,通過大量實(shí)例講解相關(guān)要點(diǎn)(各章節(jié)的實(shí)例均可在清華大學(xué)出版社的網(wǎng)站上下載)。為使讀者快速掌握并鞏固相關(guān)知識,第2~10章后都配有習(xí)題。 本書可作為計(jì)算機(jī)應(yīng)用、應(yīng)用數(shù)學(xué)等相關(guān)專業(yè)的專業(yè)課教材;對于高校其他理工科相關(guān)專業(yè)的高年級本科生、研究生以及企業(yè)應(yīng)用程序開發(fā)人員,本書亦有重要的參考價值。
書籍目錄
第1章 引言第2章 C++數(shù)學(xué)庫與面向?qū)ο蟪绦蛟O(shè)計(jì) 2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 2.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)思想的發(fā)展 2.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 2.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn) 2.2 C++程序設(shè)計(jì)基礎(chǔ) 2.2.1 C++語言與C語言的主要差異 2.2.2 C++面向?qū)ο蟪绦蛟O(shè)計(jì) 2.2.3 C++的異常處理機(jī)制 2.3 思考與練習(xí)第3章C++數(shù)學(xué)庫與應(yīng)用程序開發(fā)環(huán)境 3.1 Borland C++Builder開發(fā)環(huán)境簡介 3.2 C++數(shù)學(xué)庫的組成 3.3 C++數(shù)學(xué)庫的安裝 3.4 C++數(shù)學(xué)庫與應(yīng)用開發(fā)環(huán)境配置 3.5 第一個Matlab C++應(yīng)用程序 3.6 發(fā)布Matlab C++應(yīng)用程序 3.7 思考與練習(xí)第4章C++數(shù)學(xué)庫的核心類--mwArray 4.1 mwArray類的外部接口簡介 4.1.1 構(gòu)造函數(shù) 4.1.2 靜態(tài)數(shù)據(jù)成員 4.1.3 運(yùn)算符重載 4.1.4 成員函數(shù) 4.2 創(chuàng)建mwArray數(shù)組的方法和原則 4.3 數(shù)值數(shù)組的創(chuàng)建 4.3.1 使用構(gòu)造函數(shù)創(chuàng)建Numeric Array 4.3.2 使用庫函數(shù)創(chuàng)建數(shù)組 4.3.3 通過連接創(chuàng)建新數(shù)組 4.3.4 稀疏矩陣 4.4 字符數(shù)組的創(chuàng)建 4.4.1 使用構(gòu)造函數(shù)創(chuàng)建字符數(shù)組 4.4.2 將數(shù)值數(shù)組轉(zhuǎn)換為字符數(shù)組 4.4.3 將一維字符數(shù)組連接成二維字符數(shù)組 4.5 細(xì)胞數(shù)組的創(chuàng)建 4.5.1 使用cell()函數(shù)創(chuàng)建細(xì)胞數(shù)組 4.5.2 使用細(xì)胞數(shù)組轉(zhuǎn)換函數(shù)創(chuàng)建細(xì)胞數(shù)組 4.5.3 通過連接創(chuàng)建細(xì)胞數(shù)組 4.5.4 通過賦值創(chuàng)建細(xì)胞數(shù)組 4.5.5 顯示細(xì)胞數(shù)組中的內(nèi)容 4.6 數(shù)組元素的索引與訪問 4.6.1 使用一維下標(biāo) 4.6.2 使用N維下標(biāo) 4.6.3 使用邏輯下標(biāo) 4.6.4 在賦值表達(dá)式中使用下標(biāo) 4.6.5 刪除數(shù)組中的元素 4.6.6 從mwArray數(shù)組中提取數(shù)據(jù) 4.6.7 細(xì)胞數(shù)組的索引 4.6.8 數(shù)組維數(shù)及大小等相關(guān)信息的確定 4.7 思考與練習(xí)第5章 數(shù)學(xué)運(yùn)算符及應(yīng)用 5.1 加減運(yùn)算符及其應(yīng)用 5.2 乘除運(yùn)算符及其應(yīng)用 5.2.1 數(shù)組乘除 5.2.2 矩陣乘除 5.3 關(guān)系運(yùn)算符及其應(yīng)用 5.4 邏輯運(yùn)算符及其應(yīng)用 5.5 數(shù)學(xué)運(yùn)算應(yīng)用小結(jié) 5.6 思考與練習(xí)第6章 C++數(shù)學(xué)庫函數(shù)的調(diào)用第7章 C++數(shù)學(xué)庫應(yīng)用中的異常處理第8章 mwArray數(shù)組的輸入輸出第9章 數(shù)據(jù)可視化——擴(kuò)展plot函數(shù)庫第10章 C++數(shù)學(xué)庫的綜合應(yīng)用舉例附錄A 常用庫函數(shù)附錄B Matlab外部接口簡介附錄C 關(guān)于自定義工程模板附錄D 如何安裝數(shù)組輸入輸出組件附錄E 如何安裝運(yùn)算符重載擴(kuò)展函數(shù)庫參考文獻(xiàn)
章節(jié)摘錄
插圖:如果你的電腦已經(jīng)安裝了Matlab 6.0或其以上版本,Matlab數(shù)學(xué)庫通常被同時安裝到了電腦上(本書中介紹的Matlab C++數(shù)學(xué)庫取自Matlab 6.0)。其中,動態(tài)鏈接庫文件被安裝在子目錄bin下,而導(dǎo)入庫文件則與特定的編譯器有關(guān)(BCB和VC開發(fā)環(huán)境下對應(yīng)的導(dǎo)入庫文件是不同的,本書作者只整理了BCB下必需的導(dǎo)入庫文件),頭文件是應(yīng)用程序編譯時所必需的文件。導(dǎo)入庫文件及其頭文件可以在Matlab安裝目錄下的子目錄extern中找到。然而,通過使用c++Builder編譯器編譯程序發(fā)現(xiàn),Matlab自帶的應(yīng)用程序開發(fā)時所必需的一些頭文件存在許多編譯時錯誤。大部分錯誤的原因是原始頭文件中的許多行的字符數(shù)超過了一般編譯器所識別的范圍,因此無法通過編譯。此外,原始頭文件中的一些聲明和C++庫本身的頭文件聲明出現(xiàn)重定義等語法錯誤?;谏鲜鰡栴},筆者專門對Matlab C/C++數(shù)學(xué)庫進(jìn)行了整理,修正了上述錯誤。為更正這個錯誤,筆者開發(fā)了一個專門用來解決原始頭文件中行的字符數(shù)超出限制問題的程序(即“頭文件轉(zhuǎn)換程序”,手工回車換行解決此問題的辦法根本不可行),該程序通過對原始頭文件的相應(yīng)轉(zhuǎn)換,修正了行字符數(shù)過長的問題,然后,根據(jù)C++語法規(guī)則,進(jìn)一步更正了轉(zhuǎn)換后的頭文件中的少量語法錯誤,以獨(dú)立于Matlab環(huán)境的“Matlab C/C++數(shù)學(xué)庫”提供給各位讀者(見3.2節(jié)所介紹的Matlab C++數(shù)學(xué)庫)。有了“Matlab C++數(shù)學(xué)庫”,要進(jìn)行基于該數(shù)學(xué)庫的應(yīng)用程序的開發(fā),不再需要事先在電腦中安裝Matlab軟件,只需要將本書隨書附件目錄“MatlabC++數(shù)學(xué)庫”下的文件夾Matlab復(fù)制到C++Builder。的安裝目錄下(如圖3-9所示),然后運(yùn)行該目錄下的install.bat腳本(具體操作請參考上述目錄下的安裝說明文件)就可以了。上述Matlab文件夾中包含三個子文件夾,分別為dll、lib和inclltde,它們分別對應(yīng)圖3-8中的三個組成部分。其中include文件夾里又包含(cpp)子文件夾,該子文件夾中的頭文件是與C++數(shù)學(xué)庫對應(yīng)的,其中的有些文件引用了include根目錄下的頭文件。因而這些頭文件在應(yīng)用程序開發(fā)過程中都必不可少。
編輯推薦
《MATLAB C++應(yīng)用開發(fā)》特色對于那些一直苦苦追尋一個易用高效、完整獨(dú)立C++數(shù)學(xué)庫的讀者,《MATLAB C++應(yīng)用開發(fā)》將給他們帶來意想不到的收獲?!禡ATLAB C++應(yīng)用開發(fā)》具有如下特色:使用方便。針對c++開發(fā)環(huán)境,對原始Matlab c++數(shù)學(xué)庫進(jìn)行處理,使之在不安裝Matlab的前提下就可直接用于c++開發(fā)環(huán)境,使用上非常方便。循序漸進(jìn)、實(shí)用性強(qiáng)。熟知C語言的讀者,即使不懂c++語言,也可以通過《MATLAB C++應(yīng)用開發(fā)》輕松上路。通過大量精選實(shí)例,讀者完全可即學(xué)即用。獨(dú)創(chuàng)性。作者對Matlab c++數(shù)學(xué)庫做了許多擴(kuò)展,開發(fā)了擴(kuò)展圖形函數(shù)庫和矩陣輸入輸出控件以及運(yùn)算符重載擴(kuò)展庫,讀者可用于自己的應(yīng)用開發(fā)中,從而加快開發(fā)進(jìn)度。與應(yīng)用領(lǐng)域相結(jié)合。給出了Matlab c++數(shù)學(xué)庫的幾個重要應(yīng)用領(lǐng)域.讀者可從中受到啟發(fā),理論聯(lián)系實(shí)際。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
MATLAB C++應(yīng)用開發(fā) PDF格式下載