版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1 命令窗口(Command History)窗 當(dāng) (Current窗 小 習(xí) 第2 基本概 向量運(yùn) 矩陣運(yùn)
... 2.4.1數(shù)組元素的次 2.4.2數(shù)組的創(chuàng) 數(shù) 小 習(xí) 第3 公 基礎(chǔ)及其應(yīng)稀疏矩陣的基礎(chǔ)及其應(yīng) 小 習(xí) 第4章結(jié)構(gòu)數(shù)組與細(xì)胞數(shù) 結(jié)構(gòu)數(shù) 細(xì)胞數(shù) 小 習(xí) 第5 符號(hào)Taylor級(jí)數(shù)展 Z變換及其反變
小 習(xí) 第6 M文 M文件的編輯與運(yùn) 文 的程序控制結(jié) M數(shù)據(jù)文件的/加(save/ 格式化文本文件的(fprintf/ 二進(jìn)制數(shù)據(jù)文件的(fwrite/ //(fgetl/ 方 小 習(xí) 第7 二維圖 子 三維圖
8 常用的Source信 常用的Sink信 圖 7.3.1圖像的類(lèi)別和顯圖 7.3.1圖像的類(lèi)別和顯 7.3.2圖像的讀 函數(shù)繪 小 習(xí) 4小 5習(xí) 第1 教學(xué)提示:是目前在國(guó)際上被廣泛接受和使用的科學(xué)與工程計(jì)算軟件。雖CleveMoler教授開(kāi)發(fā)它的初衷是為了更簡(jiǎn)單、更快捷地解決矩陣運(yùn)算,但現(xiàn)教學(xué)要求:了解的發(fā)展歷史、特點(diǎn)和功能,了解工具箱的概念及類(lèi)型。重點(diǎn)掌握主界面各窗口的用途和操作方法。 的發(fā)展沿革2070年代中后期,曾在密西根大學(xué)、斯坦福大學(xué)和新墨西哥大學(xué)擔(dān)任數(shù)學(xué)與計(jì)CleveMoler博士,為講授矩陣?yán)碚摵蛿?shù)值分析課程的需要,他和同事用FortranEISPACKLINPACK,這便是構(gòu)思和開(kāi)發(fā)的起點(diǎn)。一詞是對(duì)MatrixLaboratory(矩陣)的縮寫(xiě),由此可看出與矩陣計(jì)算的淵源。EISPACKLINPACK兩大軟件包的子程序外,還包含了用Fortran語(yǔ)言編寫(xiě)的、用于承擔(dān)命令翻譯的部分。為進(jìn)一步推動(dòng)2080年代初,JohnLittle等人將先前的全部用C語(yǔ)言進(jìn)行改寫(xiě),形成了新一代的。1984年,CleveMolerJohnLittleMathWorks公司,并于同年向市場(chǎng)推出了第一個(gè)的商業(yè)版可視化以及與其他流行軟件的接口等功能,并開(kāi)始了對(duì)工具箱的研究開(kāi)發(fā)。1993年,MathWorks公司推出了基于PC的以Windows為操作系統(tǒng)平臺(tái) 版。1994年推出的4.2版,擴(kuò)充了4.0版的功能,尤其在圖形界面設(shè)計(jì)方面提供了新的 數(shù)組、對(duì)象、類(lèi)等,使其成為一種更方便的編程語(yǔ)言。1999年初推出的 很多方面又進(jìn)一步改進(jìn)了的功能。 6.0正式版(Release12),在數(shù)值算法、面設(shè)計(jì)、外部接口、應(yīng)用桌面等諸多方面有了極大的改進(jìn)。時(shí)隔2年,即20028月又推出了6.5JIT加速技術(shù),使運(yùn)算速度2004年7月,MathWorks公司又推出 7.0版(Releasel4),其中集成7.0編譯器、6.0圖形仿真器及很多工具箱,在編程環(huán)境、代碼效率、數(shù)據(jù)可視化、文件I/O等方面都進(jìn)行了全面的升級(jí)。最近的一次版20059月,Mathworks公司推出了7.1版,包括Macintosh平臺(tái)的支持。另外,此前的兩次較小范圍的更新主要提供了一個(gè)Linux平臺(tái)上的64位版本,并且優(yōu)化了工作在Linux和Macintosh平臺(tái)上的基本線性代數(shù)子程序庫(kù)。顯然,今天的已經(jīng)不再是僅僅解決矩陣與數(shù)值計(jì)算的軟件,更是一種集數(shù)的集成軟件。觀察由歐美引進(jìn)的新版,已經(jīng)成為線性代數(shù)、數(shù)值分析計(jì)算、 的特點(diǎn)及應(yīng)用領(lǐng)域來(lái)定。在中,數(shù)組與矩陣的運(yùn)算法則和運(yùn)算函數(shù)是有區(qū)別的但不論是的數(shù)組還是的矩陣,都已經(jīng)改變了一般高級(jí)語(yǔ)言中使用數(shù)組的方式和解決矩陣問(wèn)在中,矩陣運(yùn)算是把矩陣視為一個(gè)整體來(lái)進(jìn)行,基本上與線性代數(shù)的處理當(dāng)把矩陣(或數(shù)組)獨(dú)立地當(dāng)作一個(gè)運(yùn)算量來(lái)對(duì)待后,向下可以兼容向量和標(biāo)是區(qū)別于其他高級(jí)語(yǔ)言的根本特點(diǎn)。以此為基礎(chǔ),還可以概括出如下一些的特色。因?yàn)槎x了專(zhuān)門(mén)用于矩陣運(yùn)算的運(yùn)算符,使得矩陣運(yùn)算就像列出算式執(zhí)行符可使一般高級(jí)語(yǔ)言中的循環(huán)結(jié)構(gòu)變成一個(gè)簡(jiǎn)單的語(yǔ)句再結(jié)合豐富的庫(kù)函數(shù)可使程序變得相條語(yǔ)句即可代替數(shù)十C語(yǔ)言Fortran語(yǔ)言程序語(yǔ)句的在令窗口中,輸入一條命令,立即就能看到該命令的執(zhí)行結(jié)果,體現(xiàn)第1 簡(jiǎn) 除內(nèi)部函數(shù)外,的其他文件都是公開(kāi)的、可讀可改的源文件,體現(xiàn)了MEXCFortran語(yǔ)言編寫(xiě)的函數(shù)或程序,完成與它們的混合編程,充分利用已有的CFortran語(yǔ)言資源。數(shù)據(jù)分析;航天工業(yè);汽車(chē)工業(yè);語(yǔ)音處理; 系統(tǒng)及工具箱工具箱實(shí)際是用語(yǔ)句編成的、可供調(diào)用的函數(shù)文件集,用于解決某一方面的專(zhuān)門(mén)問(wèn)題或?qū)崿F(xiàn)某一類(lèi)新算法。工具箱中的函數(shù)文件可以修改、增加或刪除,用戶也可根據(jù)自己研究領(lǐng)域的需要自行開(kāi)發(fā)工具箱并到中。Internet上有大到目前為止,40生物信息科學(xué)工具箱(Bioinformatics通信工具箱(Communication控制系統(tǒng)工具箱(ControlSystem曲線擬合工具箱(CurveFitting工具箱(DataAcquisition濾波器設(shè)計(jì)工具箱(FilterDesign財(cái)政金融工具箱(Financial模糊邏輯工具箱(FuzzyLogic圖像處理工具箱(ImageProcessing地圖工具箱(Map模型預(yù)測(cè)控制工具箱(ModelPredictiveControl偏微分方程工具箱(PartialDifferentialEquation信號(hào)處理工具箱(SignalProcessing仿真工具箱(統(tǒng)計(jì)工具箱(Statistics小波工具箱(WaveletToolbox) 的安裝和啟動(dòng)128MB10GB左右的硬盤(pán);最好支持16位顏色,分辨率在800×600以上的顯示卡和顯示器;第1 簡(jiǎn) 的工作窗口界面。操作安裝后首次啟動(dòng)所得的操作界面1.1所示,這是系統(tǒng)默認(rèn)的、未曾被用別是命令窗口(CommandWindow)、歷史命令(CommandHistory)窗口、當(dāng)前(CurrentDirectory)(Workspace)窗口。除此之外,6.5之后的版本還添加菜菜單當(dāng)命令窗令窗開(kāi)始按圖1.1默認(rèn)的主界菜單欄和在組成方式和內(nèi)容上與一般應(yīng)用軟件基本相同或相似,本章備給出詳細(xì)說(shuō)明,待后面用到時(shí)自會(huì)明了。下面重點(diǎn)介紹5個(gè)窗口。命令窗口(Command在默認(rèn)主界面的右邊是命令窗口。因?yàn)橹两裎幢粷h化,所有窗口名都用英文表示,所以“CommandWindow”即指命令窗口。命令窗口顧名思義是接收命令輸入的窗口,但實(shí)際上,可輸入的對(duì)象除命命令窗口可從主界面中分離出來(lái),以便單獨(dú)顯示和操作,當(dāng)然也可重新返回主界面中,其他窗口也有相同的行為。分離命令窗口可執(zhí)行Desktop菜單中的UndockCommandWindow命令,也可單擊窗口右上角的按鈕,另外還可以直接用鼠標(biāo)將命令窗1.2所示。若將命令窗口返回到主界面中,可單擊窗口右上角的按鈕,或執(zhí)行Desktop菜單中的DockCommandWindow命令。下面分幾點(diǎn)對(duì)使用命
圖1.2分離令窗在此符號(hào)后)Enter鍵,方可被接收和執(zhí)行。執(zhí)行的結(jié)果通常就直接顯示在語(yǔ)句下方,如圖1.2所示。不同類(lèi)型語(yǔ)句用不同顏分。在默認(rèn)情況下,輸入令、函數(shù)、表達(dá)式以及計(jì)算史窗口中(未對(duì)該窗口執(zhí)行清除操作)1-1所列1-1語(yǔ)句行用到的編輯↑↓←→第1 簡(jiǎn) 要是:在文字處理軟件中是針對(duì)整個(gè)文檔使用,而命令窗口是以行為單位使用1-2所示。提醒一下,在向命令窗口輸入語(yǔ)句時(shí),一定要在英文輸入狀表1-2語(yǔ)句中常用標(biāo)點(diǎn)符號(hào)的作名符 ,.;:%'([{…=>>a=24.5,b=Hi,MissBlack "%"24.Hi,MissBlac>>c=[12;34
1-3所示。其中默認(rèn)的顯示格式是:數(shù)值為整數(shù)時(shí),以整數(shù)顯示;數(shù)值1-3命令窗口中數(shù)據(jù)e的顯示格格short(默認(rèn)4位小數(shù),整數(shù)部分3位的小shortshort14位小數(shù)表示,倍數(shù)關(guān)系用科學(xué)計(jì)數(shù)short間時(shí),自動(dòng)調(diào)整數(shù)位多少,超出冪次范圍時(shí)用shorte用longe格式表示long15位小數(shù)的科學(xué)表long15位有效數(shù)字,數(shù)字大10的+15和-5次longe格++必須,所有數(shù)值均按IEEE浮點(diǎn)標(biāo)準(zhǔn)所規(guī)定的長(zhǎng)型格式,顯示的精度并不代表數(shù)值實(shí)際的精度,或者說(shuō)數(shù)值參與運(yùn)算的精度,認(rèn)清這點(diǎn)是非常必要的。格式設(shè)定的方法有兩種:一是執(zhí)行FilePreferences命令,用彈出的框(如圖1.3所示)去設(shè)定;二是執(zhí)行format命令,例如要用long格式,在命令formatlong語(yǔ)句即可。兩種方法均可獨(dú)立完成設(shè)定,但使用命令是方便在程序由用戶自行挑選。其方法還是執(zhí)行File|Preferences命令,彈出如圖1.3所示框。利用該框左側(cè)的格式對(duì)象樹(shù),從中選擇要設(shè)定的對(duì)象再配合相應(yīng)的選項(xiàng),便可對(duì)所選對(duì)象第1 簡(jiǎn)
圖1.3Preferences設(shè)置 窗口的Edit|ClearCommandWindow命令;二是在提示符后直接輸入clc語(yǔ)句。兩種方法都能清除命令窗口歷史命令(CommandHistory)歷史命令窗口是用來(lái)存放曾在命令窗口中使用過(guò)的語(yǔ)句。它借用計(jì)算機(jī)的將它們到當(dāng)前正在工作令窗口中,以供進(jìn)一步修改或直接運(yùn)行。其優(yōu)勢(shì)在如下兩種情況現(xiàn)得、執(zhí)行歷史命令窗口中
1.4分離的歷史命令Windows選中文件時(shí)方法相同,同樣可以結(jié)合Ctrl鍵和Shift鍵使用。1-4歷史命令窗口的主要應(yīng) 選中單行或多行語(yǔ)句,右擊,彈出快捷菜單,執(zhí)行該菜單中的Evaluate把多行語(yǔ)句寫(xiě)成M文選中單行或多行語(yǔ)句,右擊,彈出快捷菜單,執(zhí)行該菜單的CreateM-再按ShiftEdit|Copy口。其操作如圖1.5所示。圖1.5歷史命令窗口選中與操再按Ctrl執(zhí)行上述命令后,歷史命令窗口當(dāng)前的內(nèi)容就被完全清除了,以前令再不能被追溯和第1 簡(jiǎn) 當(dāng) (CurrentDirectory)窗借鑒Windows資源管理器管理磁盤(pán)、文件夾和文件的思想,設(shè)計(jì)了當(dāng)前目錄窗口。利用該窗口可組織、管理和使用所有文件和非文件,例如新建、載入MAT數(shù)據(jù)文件等。當(dāng)然,其功能還是設(shè)置當(dāng)前 窗口如圖1.6所示。下面主要介紹當(dāng)前 當(dāng) 設(shè)置圖1.6分離的當(dāng) 窗的當(dāng)前即是系統(tǒng)默認(rèn)的實(shí)施打開(kāi)、裝載、編輯和保存文件等操作時(shí)的文件夾。用桌面圖標(biāo)啟動(dòng)后,系統(tǒng)默認(rèn)的當(dāng)前是…\\work。設(shè)置當(dāng)前就是將此默認(rèn)文件夾改變成用戶希望使用的文件夾,它應(yīng)是用戶準(zhǔn)備用來(lái)存放文件在當(dāng)前設(shè)置區(qū)設(shè)置。在圖1.1所示主界面的右邊以及圖1.6所示分離的當(dāng)前設(shè)置窗口都有當(dāng)前設(shè)置區(qū),可以在設(shè)置區(qū)的下拉列表文本框中直接填寫(xiě)待設(shè)置的文件夾名或選擇下拉列表中已有的文件夾名;或單擊按鈕,從彈出的當(dāng)前設(shè)置框的樹(shù)中選取欲設(shè)為當(dāng)前的文件夾即可。欲彈出分離的當(dāng)前目錄設(shè)置窗口,執(zhí)行Desktop|CurrentDirectory菜單命令即可。用命令設(shè)置。有一組從DOS中借用的命令可以完成這一任務(wù),它們的語(yǔ)法格式如表1-5所示。表1-5幾個(gè)常用的設(shè)置當(dāng) cd文件夾 cdcd 用命令設(shè)置當(dāng)前,為在程序中控制當(dāng)前的改變提供了方便,因?yàn)榫帉?xiě)完成的工作空間(Workspace)窗工作空間窗口的主要目的是為了對(duì)中用到的變量進(jìn)行觀察、編輯、提取和的某一特定區(qū)域,因而工作空間的表現(xiàn)亦如內(nèi)存的表現(xiàn)。工作空間窗口如圖1.7所示。因?yàn)楣ぷ骺臻g的內(nèi)存性質(zhì),存放其中的變量(或稱數(shù)據(jù))在退出前用數(shù)據(jù)文件(.MAT文件)將其保存在外存上。其具
1.7分離的工作空間1-6工作空間中保存和刪除變量的操作方 MAT文右擊,在彈出的快捷菜單中執(zhí)行SaveWorkspaceAs…命令,則可把當(dāng)前工為MAT文件選中一個(gè)或多個(gè)變量按鼠標(biāo)右鍵彈出快捷菜單,選用Delete命令,或執(zhí)行窗口的Edit|Delete菜單命令;在彈出的ConfirmDelete框中 將在本書(shū)1.8節(jié)中說(shuō)明。save命令,其功能是把工作空間的部分或全部變量保存為以.mat為擴(kuò)展名的文件。save12變量3第1 簡(jiǎn) >>savedata>>savevar_abA
%工作空間中所有變量保存在dataf.mat文件中>>savevar_abC-appe load命令,其功能是把外存中的.matsave命令相對(duì)。它的load12>>loaddata>>loadvar_abA
%datafmat文件中全部變量調(diào)入工作空%var_abmat文件中的變量A、B調(diào)入工作空clear命令,其功能是把工作空間的部分或全部變量刪除,但它不清除命令窗口。clear123…>>clea>>clearA
幫助(Help)窗圖1.8所示是 1.8Contents、Index、SearchDemos等,其功能Contents選項(xiàng)卡向用戶提供全方位幫助的向?qū)D,單擊左邊的 右邊的幫助瀏覽器中顯示相應(yīng)的HTML幫助文本。Index選項(xiàng)卡 選項(xiàng)卡是通過(guò)來(lái)查找全文中與之匹配的章節(jié)條目 的各種所以M文件、數(shù)據(jù)文件和圖形文件,除此之外,還有MEX文件、模型文件和仿真文件等。下面分別予以說(shuō)明。M文件,以.mM文件。M文件是由一系列語(yǔ)句組及到MAT文件。顯然,數(shù)據(jù)文件保存了 模型和仿真文件,模型文件以.mdl為擴(kuò)展名,由仿真工具箱在建立各種仿真模型時(shí)產(chǎn)生。仿真文件以.s為擴(kuò)展名。的搜索路徑據(jù)文件、命令和函數(shù)文件也是由用戶存放在指定的文件夾中。當(dāng)需要調(diào)用這些函數(shù)或文件“包括盤(pán)符和一級(jí)級(jí)嵌一文件lx04_01.m存放在D盤(pán)“文件”文件夾下的“M4章”子文件夾中,那么,描述它的路徑是:D:\文件\M文件\第4章。若要調(diào)用這個(gè)M文件,可在命令窗口或程序中將其表達(dá)為:D:\文件\M文件\第4章\lx04_01.m。在實(shí)用時(shí),這種書(shū)寫(xiě)因?yàn)檫^(guò)長(zhǎng)而第1 簡(jiǎn) 必須,不是說(shuō)有了搜索路徑,對(duì)程序中出現(xiàn)的符號(hào)就只能從搜索路徑中去查找。在中,一個(gè)符號(hào)出現(xiàn)在程序語(yǔ)句里或命令窗口的語(yǔ)句中可能有多種解讀,它也許是一個(gè)變量、特殊常量、函數(shù)名、MMEX文件等,到底將其識(shí)別成什 上一步否定后,檢查xt是否為 的內(nèi)部函數(shù),若肯定,則調(diào)用xt這個(gè)內(nèi) 在,若肯定,則將xt作為文件調(diào)用; 或“xt.mex”的文件存在,若肯定,則將xt作為文件調(diào)用;上述4步全走完后,仍未發(fā)現(xiàn)xt這一符號(hào)的出處,則 的框,如圖1.9所示。圖1.9設(shè)置搜索路徑利用“瀏覽文件夾”框可以從樹(shù)形結(jié)構(gòu)中選擇欲指定為搜索路徑的文件夾。圖1.10瀏覽文件夾AddFolder…和AddwithSubfolders…兩個(gè)按鈕的不同處在于后者設(shè)置某個(gè)文件夾成為從圖1.9和圖1.10中可看出將路徑“F:\ 圖1.9所示框下面有兩個(gè)按鈕Save和Close在使用時(shí)值得注意。Save按鈕是用來(lái)保存對(duì)當(dāng)前搜索路徑所做修改的,通常先執(zhí)Save命令后,再執(zhí)行Close。Close按鈕是用來(lái)關(guān)閉框的,但是如果只想將修改過(guò)的路徑為本次打開(kāi)使用,無(wú)意供能夠?qū)⒛骋宦窂皆O(shè)置成可搜索路徑令有兩個(gè):一個(gè)是path;另一個(gè)是 文件\M文件”設(shè)置成可搜索路徑為例,分別予以pathaddpathpath2rc>>pathpathF 文件\M文件’);>>addpathF: 文件\M文件–begi >>addpathF: 文件\M文件–e 窗口操作命令在本章前述的討論中,針對(duì)各窗口在應(yīng)用中所需的多種設(shè)置,可用菜單、框去解決,也可用命令去設(shè)置,這是提供的兩套并行的解決方第1 簡(jiǎn) 執(zhí)行命令時(shí),用菜單和框是方便的,但當(dāng)用戶需要編寫(xiě)一個(gè)程序,而將所需的設(shè)置動(dòng)成打開(kāi)菜單和框的操作,然后又回去接著執(zhí)行后續(xù)的程序。因此用命令去完成的多種設(shè)置操作就不是可有可無(wú)的了。clc,清除工作空間窗口令clear,設(shè)置當(dāng)前 令cd,等等。限于篇幅,本節(jié)僅將 分別列在表1-7至表1-10中。1-7工作空間管理命 save或savelx02Aloadclear1-8與命令窗口相關(guān)的操 formatbank表echoon,echo 語(yǔ)句,on表示肯定,off表close關(guān)閉當(dāng)前圖形窗口,加參數(shù)all則關(guān)閉所有圖形窗表1- 命令示例說(shuō)明 cd把cd命令后 mkdir 顯示當(dāng) whichtypedelete1-10 help 命令、函數(shù)和M文件的使用和幫助信lookfor能而不知道準(zhǔn)確名字helpwin 的主界面集成了命令窗口、歷史命令窗口、當(dāng)前窗口、工作空間窗口和5個(gè)窗口。它們既可單獨(dú)使用,又可相互配合,為用戶提供了十分靈活方便的對(duì)各窗口的某項(xiàng)設(shè)置操作通常都有兩條途徑:一條是用相關(guān)窗口的框或菜單(包括快捷菜單);另一條是在命令窗口執(zhí)行某一命令。前者的優(yōu)點(diǎn)是方便用戶與的交互,而后者主要是考慮到程序設(shè)計(jì)的需要和方便。 可以用命令或是菜單清除命令窗口中的內(nèi)容。若用命令,則這個(gè)命令是 )A. B. C. D.啟 程序后,結(jié)果不見(jiàn)工作空間窗口出現(xiàn),其最有可能的原因是 )A.程序出了問(wèn) B.桌面菜單中“workspace”菜單項(xiàng)未選C.其他窗口打開(kāi)太 D.其他窗口未打第1 簡(jiǎn) 在一個(gè)矩陣的行與行之間需用某個(gè)符號(hào)分隔,這個(gè)符號(hào)可以是 )A.句 B.減 C.逗 D.回 分隔希望顯示執(zhí)行結(jié)果 B.實(shí)現(xiàn)轉(zhuǎn)置共C.分隔矩陣中同一行的各元 D.分隔輸入變E. 分隔希望顯示執(zhí)行結(jié)果 自動(dòng)控 B.信號(hào)處 C.圖像處D.通信仿 E.小波變 F.最優(yōu)化問(wèn)歷史命令窗口能夠?qū)崿F(xiàn)的功能有 )記錄并顯示已經(jīng)運(yùn)行過(guò) 軟件 會(huì)同時(shí)打開(kāi)4個(gè)窗口,它們分 、CommandHistory、Workspace和CurrentDirectory。第2 言不同,在中數(shù)組可作為一個(gè)獨(dú)立的運(yùn)算單位,直接進(jìn)行類(lèi)似簡(jiǎn)單變量的多種運(yùn)算而無(wú)需采用循環(huán)結(jié)構(gòu),由此決定了數(shù)組在中作為基本運(yùn)算量的角色定位。數(shù)組有一維、二維和之分,在中,它們有類(lèi)似于簡(jiǎn)單變量的、統(tǒng)一的運(yùn)算運(yùn)算規(guī)則實(shí)施運(yùn)算時(shí),它便是矩陣。數(shù)組及矩陣的基本運(yùn)算構(gòu)成了整個(gè)的語(yǔ)言教學(xué)要求:了解的數(shù)據(jù)類(lèi)型,理解向量、矩陣、數(shù)組、函數(shù)和表達(dá)式等基數(shù)據(jù)類(lèi)程的語(yǔ)言當(dāng)然也不例外。的主要數(shù)據(jù)類(lèi)型如圖2.1所示。C語(yǔ)言有所不同。的整符號(hào)對(duì)象是所特有的一類(lèi)為符號(hào)運(yùn)算而設(shè)置的數(shù)據(jù)類(lèi)型。嚴(yán)格地說(shuō),它不是某一類(lèi)型的數(shù)據(jù),它可以是數(shù)組、矩陣、字符等多種形式及其組合,但它在第2 語(yǔ)言基 無(wú)符
整 數(shù)值
有符
基本
浮點(diǎn)
單精雙精字符串?dāng)?shù)據(jù)類(lèi) 數(shù)組構(gòu)造符號(hào)對(duì)
細(xì)胞型結(jié)構(gòu)型圖2.1的主要數(shù)據(jù)類(lèi)常量與變量常量是程序語(yǔ)句中取不變值的哪些量,如表達(dá)式y(tǒng)=0.618*x,其中就包含一個(gè)0.618這樣s='TomorrowandTomorrow'中,單引號(hào)內(nèi)的英文字符串“TomorrowandTomorrow”則是一字符串常量。在中,有一類(lèi)常量是由系統(tǒng)默認(rèn)給定一個(gè)符號(hào)來(lái)表示的,例如pi,它代表圓周率這個(gè)常數(shù),即3. 變量是在程序運(yùn)行中其值可以改變的量,變量由變量名來(lái)表示。在中變量3類(lèi)符號(hào)組成,不能含有空格和標(biāo)點(diǎn)符號(hào)(如(),。%’)等。表2-1特殊常量i或虛數(shù)單位,定義為i2j2Inf或圓周率的雙精度表分辨率,PC上此值為2-52Realmin或Realmax或變量名區(qū)分字母的大小寫(xiě)。例如,“a”和“A變量名過(guò)63個(gè)字符,第63個(gè)字符后的字符被忽略,對(duì)于 以前的變量名過(guò)31個(gè)字符。關(guān)鍵字(如if、while等)常見(jiàn)的錯(cuò)誤命名如f(x),y',y'',A2等。標(biāo)量、向量、矩陣和數(shù)組是運(yùn)算中涉及的一組基本運(yùn)算量。它們各自的特?cái)?shù)組不是一個(gè)數(shù)學(xué)量,而是一個(gè)用于高級(jí)語(yǔ)言程序設(shè)計(jì)的概念。如果數(shù)組元素按一素在排成二維數(shù)組的基礎(chǔ)上,再將多個(gè)行、列數(shù)分別相同的二維數(shù)組疊成一本立體表格,便形成三維數(shù)組。依此類(lèi)推下去,便有了數(shù)組的概念。在中,數(shù)組的用與一.1.524 局面改變了。不僅實(shí)現(xiàn)了矩陣的簡(jiǎn)單加減乘除運(yùn)算,而且許多與矩陣相關(guān)的其他向量是一個(gè)數(shù)學(xué)量,一般高級(jí)語(yǔ)言中也未引入,它可視為矩陣的特例。從的標(biāo)量的提法也是一個(gè)數(shù)學(xué)概念,但在言的簡(jiǎn)單變量來(lái)處理,另一方面又可把它當(dāng)成1×1階的矩陣,這一看法與矩陣作為第2 語(yǔ)言基 在中,二維數(shù)組和矩陣其實(shí)是數(shù)據(jù)結(jié)構(gòu)形式相同的兩種運(yùn)算量。二維數(shù)維數(shù)組a。這就是說(shuō),單從形式上是不能完全區(qū)分矩陣和數(shù)組的,必須再看它使用什么運(yùn)算符與其他量之間進(jìn)行運(yùn)算。相關(guān)運(yùn)算符在2.1.5節(jié)會(huì)給出描述。字符 中另外一種形式的運(yùn)算量。正如在例1.1中介紹的那樣,在S是一個(gè)字符串變量,整個(gè)語(yǔ)句完成了將一個(gè)字符串常量在中,字符串的是按其中字符逐個(gè)順序單一存放的,且存放的是它們ASCII碼,由此看來(lái)字符串實(shí)際可視為一個(gè)字符數(shù)組,字符串中每個(gè)字符則是這個(gè)運(yùn)算2-2矩陣算術(shù)運(yùn)算運(yùn)算 +加-減則,即*乘/=\^'BA的共軛轉(zhuǎn)置矩2-3數(shù)組算術(shù)運(yùn)算名示矩陣的加減、乘運(yùn)算是嚴(yán)格按矩陣運(yùn)算法則定義的,而矩陣的除法雖和矩陣求逆有關(guān)系,但卻分了左、右除,因此不是完全等價(jià)的。乘冪運(yùn)算更是將標(biāo)量?jī)鐢U(kuò)展到矩陣可作為。2-3中并未定義數(shù)組的加減法,是因?yàn)榫仃嚨募訙p法與數(shù)組的加減法相同,所數(shù)組的運(yùn)算法則,可依元素按下標(biāo)一一對(duì)應(yīng)參與運(yùn)算的原則將表2-3推廣2-4關(guān)系運(yùn)算名示<A、B若一個(gè)為標(biāo)量,另一個(gè)為數(shù)組,標(biāo)量將與數(shù)組各元素值或1或0素相比較,結(jié)果為AB行列相同的數(shù)組,其中各元素取值或1或04.==和~=運(yùn)算對(duì)參與比較的量同時(shí)比較實(shí)部和虛部,其他>需要明確的是,的關(guān)系運(yùn)算雖可看成矩陣的關(guān)系運(yùn)算,但嚴(yán)格地講,把關(guān)系運(yùn)算定義在數(shù)組基礎(chǔ)之上更為合理。因?yàn)閺谋?-4所列法則不難發(fā)現(xiàn),關(guān)系運(yùn)算是元邏輯運(yùn)算在中同樣需要,為此定義了自己的邏輯運(yùn)算符,并設(shè)定了相應(yīng)的邏輯運(yùn)算法則,如表2-5所示。第2 語(yǔ)言基 2-5邏輯運(yùn)算名示&與A、B若一個(gè)為標(biāo)量,另一個(gè)為數(shù)組,標(biāo)量將與數(shù)組各元素逐取值或1或0做邏輯運(yùn)算,結(jié)果為AB行列相同的數(shù)組,其中各元素取值或1或0|或~非為1(真);否則,就要繼續(xù)與該符號(hào)右邊的量運(yùn)算。和其他高級(jí)語(yǔ)言一樣,當(dāng)用多個(gè)運(yùn)算符和運(yùn)算量寫(xiě)出一個(gè)表達(dá)式時(shí),運(yùn)算符的優(yōu)先次序是一個(gè)必須明確的問(wèn)題。表2-6列出了運(yùn)算符的優(yōu)先次序。表2-6運(yùn)算符的優(yōu)先次運(yùn)算最(邏輯非*、/(右除)、\(左除)、.*(數(shù)組乘)、./(數(shù)組右除)、.\(數(shù)組左除最有了常量、變量、數(shù)組和矩陣,再加上各種運(yùn)算符即可編寫(xiě)出多種的表達(dá)式和語(yǔ)句。但在的表達(dá)式或語(yǔ)句中,還有一類(lèi)對(duì)象會(huì)時(shí)常出現(xiàn),那便是命令和間。還有的可能在動(dòng)詞后帶有參數(shù),例如“addpathF:\ 文件\M文件-end”命令,用于添加新的搜索路徑。在中,命令與函數(shù)都組織在函數(shù)庫(kù)里,有一個(gè)專(zhuān)門(mén)的函數(shù)庫(kù)general就是用來(lái)存放通用命令的。一個(gè)命令也是一條語(yǔ)句。更在于其多。僅就的基本部分而言,其所包括的函數(shù)類(lèi)別就達(dá)二十多種,而每函數(shù)構(gòu)成。不包括上的工具箱函數(shù),就目前自帶的工具箱已多達(dá)幾十種,可見(jiàn)其函數(shù)之多。從某種意義上說(shuō),函數(shù)就代表了,全靠函數(shù)來(lái)解決問(wèn)題。函數(shù)最一般的格式是例如,正弦函數(shù)就書(shū)寫(xiě)成sin(A),A就是一個(gè)參數(shù),它可以是一個(gè)標(biāo)量,也可以接起來(lái)構(gòu)成的運(yùn)算式子就是的表達(dá)式。例如A+B&C-就是一個(gè)表達(dá)式。請(qǐng)分析它與表達(dá)式(A+B)&C-sin(A*pi)有無(wú)區(qū)在中,表達(dá)式本身即可視為一個(gè)語(yǔ)句而典型的語(yǔ)句是賦值語(yǔ)句,例如F=(A+B)&C-sin(A*pi)就是一個(gè)賦值語(yǔ)句。第2 語(yǔ)言基 向量用n個(gè)元素的數(shù)據(jù)組表示。決平面和空間的向量運(yùn)算問(wèn)題。下面首先討論在中如何生成向量的問(wèn)題。向量的生成在3種方案:直接輸入法、冒號(hào)表達(dá)式法和函數(shù)法,>>A23456B12345C456789最后一個(gè)分號(hào)表示執(zhí)行后顯示A B12345后一個(gè)元素的限定值,step是變化步長(zhǎng),省略步長(zhǎng)時(shí)系統(tǒng)默認(rèn)為1。>>A=1:2:10,B=1:10,C=10:-1:1,D=10:2:4,E=2:-1:A353579234567899matrix87654321matrixB1CDEmptEEmpt有兩個(gè)函數(shù)可用來(lái)直接生成向量。一個(gè)實(shí)現(xiàn)線性等分——linspace;另一個(gè)實(shí)現(xiàn)對(duì)數(shù)等分——logspace()。線性等分的通用格式為A=linspace(a1,an,n),其中a1是向量的首元素,an是向量的尾元素,na1an之間的區(qū)間分成向量的首尾之外的n-2個(gè)元素n則默認(rèn)生成100個(gè)元素的向量。2.3請(qǐng)?jiān)?gt;>A=linspace(1,50),B=linspace(1,30,10anA(n)=10an。nn50個(gè)元素的對(duì) >>A=logspace(0,49),B=logspace(0,4,5an在冒號(hào)表達(dá)式中,它不一定恰好是向量的最后一個(gè)元素,只有當(dāng)向量的倒數(shù)第an時(shí),anan為末尾元素依著步長(zhǎng)和an的限制去生成向量,用不著去考慮元素個(gè)數(shù)的多少。實(shí)際應(yīng)用時(shí),同時(shí)限定尾元素和步長(zhǎng)去生成向量,有時(shí)可能會(huì)出現(xiàn),此時(shí)必須做出取舍。要么堅(jiān)持步長(zhǎng)優(yōu)先,調(diào)整尾元素限制;要么堅(jiān)持尾元素限制,去修改等分步長(zhǎng)。第2 語(yǔ)言基 >>A=[12345];B=3:7;C=linspace(2,4,3);AT=A';BT=B'>>E1=A+B,E2=A-B,F=AT-BT,G1=3*A,G2=B/3,E1E2FG1G2
- -2- - ------ 1. 1. 1. 2. 2.???Errorusing==>Matrixdimensionsmustagree>>A=1:10;B=linspace(1,10,10);AT=A';BT=B'>>e=dot(A,B),f=dot(AT,BTefA=Axi+Ayj+AzkB=Bxi+Byj+BzC=A×B=(AyBz-AzBy)i+(AzBx-AxBz)j+(AxBy-AyBxB只能是三維向量。>>A=1:3,B=3:>>E=cross(A,A B E- 4->>A=1:4,B=3:6,C=[12],D=[34>>E=cross(A,B),F=cross(C,A B C D ???Errorusing==>croAandBmusthavea leastonedimensionoflength3>>A=[123],B=[334],C=[321>>D=dot(C,cross(A,ABC
第2 語(yǔ)言基 D4矩陣運(yùn)算是特別引入的一種運(yùn)算。一般高級(jí)語(yǔ)言只定義了標(biāo)量(語(yǔ)言中通常分為常量和變量)的各種運(yùn)算,將此推廣,把標(biāo)量換成了矩陣,而標(biāo)量則成了矩矩陣元素的次m×nAij表示它的列下標(biāo),那么這個(gè)矩陣中第i行、第j列的元素就可表示為A(i,j)。如果要將一個(gè)矩陣在計(jì)算機(jī)中,規(guī)定矩陣元素在器中的存放次序是陣B,若要把它在計(jì)算機(jī)中,其存放次序就如表2-7所列。表2-7矩陣B的各元素次元元元元147258369必須,不是所有高級(jí)語(yǔ)言都這樣規(guī)定矩陣(或數(shù)組)元素的次序,例如C語(yǔ)弄清了矩陣元素的次序,現(xiàn)在來(lái)討論矩陣元素的表示方法和應(yīng)用。在中,矩陣除了以矩陣名為單位整體被外,還可能涉及對(duì)矩陣元素的操作,所以矩m×nAij列的元素用全下標(biāo)方式就表示成單下標(biāo)方式將矩陣元素按次序的先后用單個(gè)數(shù)碼順序地連續(xù)編號(hào)。仍以階的矩陣A為例,全下標(biāo)元素A(i,j)對(duì)應(yīng)的單下標(biāo)表示便是A(s)s=(j-1)×m+i。必須,i、j、s這些下標(biāo)符號(hào),不能只將其視為單數(shù)值下標(biāo),也可理解成用向量表>>A=[1A3;64;879123654879>>A23A6)%顯示矩陣中全下標(biāo)A23和單下標(biāo)元素A6的值ans=4ans7>>A123 ans34>>A68 ans 矩陣元素的賦值有3種方式:全下標(biāo)方式、單下標(biāo)方式和全元素方式。必須,用>>clea>>A(1:2,1:3=[11;111A111111>>A(3,3)A111111002第2 語(yǔ)言基 >>A(3:6)=[-111-1] A= 1 1- -2>>A(3)=0;A(6)A 1 1 2全元素方式:將矩陣B的所有元素全部賦值給矩陣A,即A(:)=B,不要求A、>>A(:)=1:A陣 7 8 9>>A(3,4)=16,B=[13;141516;171819;000AB 00>>A(:)%4×3階矩陣B按列全3×4階矩陣A 0 >>clea>>A(2:3,2:3)=[11;22] A= >>A2 A0000>>A(1:2)=22A0>>A=202A[矩陣的創(chuàng)建 因?yàn)榫仃囀翘貏e引入的量,所以在表達(dá)時(shí),必須給出一些相關(guān)的約定與其矩陣的所有元素必須放在方括號(hào)([])每行的元間需用逗號(hào)或空格隔開(kāi)>>x=27;y=3>>A=[123;456];B=[2,3,4;7,8,9;12,2*6+1,14]>>C=[ x/10 12]A
B C 第2 語(yǔ)言基 >>clea>>A=[1A34;678;101112;131415161234567892367>>C=A([3],[4C24>>B=A(1:3,2:3) 2367>>C=A([3],[4C24取矩A行數(shù)1、32、4的元素構(gòu)成子矩陣>>D=A4 D >>E=A([24],end) 1、4行,最后列,用“end”表示某一維數(shù)中的最大值E=8>>clea>>A=[1A34;678;101112;13141516123456789>>B=A([4:6;357;12:14])B=8A4~613、5、73個(gè)元素做的格式去抽取也是正確的,關(guān)鍵在于若要抽取出矩陣,就必須在單下標(biāo)中的最外層加上一對(duì)方括號(hào),以滿足對(duì)矩陣的約定。另外,其中的分號(hào)也不能少。分號(hào)若改>>A=[123;456;789],B=[98;76;54],C=[456;789]A= B C >>E=[AB;BA] E=123984567678954981237645654789>>F=[A;1234567894567894.特矩陣、魔方矩陣、帕斯卡矩陣、范矩陣等,這些矩陣如表2-9所示。2-8常用工具矩陣生成函 2-9特殊矩陣生成函 Companion矩Higham測(cè)試矩Hankel矩Toeplitz矩Hilbert矩范矩反Hilbert矩維數(shù)組(2.4.2節(jié)將給出介紹),而eye(m,n)可生成非方陣的單位陣。>>A=ones(3,4),B=eye(3,4),C=magic(3A111111111111B100001000010C816357492>>formatratD=hilb3E=pascal(4 D 1/ 1/1/ 1/ 1/1/ 1/ 1/E11111234n階魔方矩陣的特點(diǎn)是每行、每列和兩對(duì)角線上的元和各等于(n3+n)/2。例如上例5.cat函數(shù)的使用格式是:cat(n,A1,A2,A3,…),n=1時(shí),表示沿行方向拼接;n=2,表示repmat函數(shù)的使用格式是:repmat(A,m,n…),mn分別是沿行和列方向重復(fù)拼接矩陣A的次數(shù)。>>A1=[123;987;456],A2=A1.'A1=A2
>>cat(1,A1,A2,A1ans1239874563987456>>cat(2,A1,A2ans
>>repmat(A1,2,2)ans=1231239879874564561231239879874564562語(yǔ)言基 >>repmat,2,1ans123987456123987456>>repmat(A1,1,3)ans=123123123987987987456456456n分別是變形后新矩陣的行列數(shù)。>>A=linspace(2,18,9)A= >>B=reshape(A,3,3 B2846>>a=20:224b=a.'; >>CBbDreshapeC433×4階的矩陣C變形4×3階的矩陣DC= D24686.所謂加載法是指將已經(jīng)存放在外存中的.mat文件讀入 法的前提是:必須在外存中事先已保存了該.mat文件且數(shù)據(jù)文件中的內(nèi)容是所需的矩陣。 編程解決實(shí)際問(wèn)題時(shí),可能需要將程序運(yùn)行的中間結(jié)果用.mat保存在內(nèi)存工作空間以備當(dāng)前程序使用。>>clea>>loadsl >> %問(wèn)加載的矩陣名稱,參見(jiàn)1.8節(jié)表1.8Yourvariablesare>>A 67 34 767.MM文件法和加載法其實(shí)十分相似,都是將事先保存在外存中的矩陣讀入內(nèi)存工作空間中,不同點(diǎn)在于加載法讀入的是數(shù)據(jù)文件(.mat)M文件法讀入的是內(nèi)容僅為矩陣的.mM文件一般是程序文件,其內(nèi)容通常為命令或程序設(shè)計(jì)語(yǔ)句,但也可存放矩陣,因?yàn)榻?jīng)常被時(shí),若每次都采用直接輸入法,這樣既容易出錯(cuò)又很笨拙。一個(gè)省時(shí)、省復(fù)的矩陣,且用M文件將其保存。每當(dāng)用到該矩陣時(shí),就只需在程序中該M文代數(shù)運(yùn)算在中的實(shí)現(xiàn)給予描述。陣的秩、求矩陣的特征值與特征向量、矩陣的乘方與開(kāi)方等。這些運(yùn)算在中有>>A=[324;1-15;2–13],D1=det(A)A=D1
- - 第2 語(yǔ)言基 >>B=ones(3),D2=det(B),C=pascal(4),D3=det(C)B=D2C
0 D3=
22
3
>>A=[13;2–1];B=[30;12]ans >>ans ->>2*A-ans- ->>ans - 中,求一個(gè)n階方陣的逆矩陣遠(yuǎn)比線性代數(shù)中介紹的方法來(lái)得簡(jiǎn)單,只需調(diào)用函數(shù)inv(A)即可實(shí)現(xiàn)。>>A=[A01;12;046101212046>>formatrat;A1=inv(A)A1=-1/ 2/ -1/- 4/ -2/ 1/2xxx xx3x x xx –1]B=[0;->>A=[14-A6;011;113;101-1],B=-[80;-2;1],x=A\14-60211011310B0--1x3.-4.-1.1.>>inv(A)*Bans=3.-4.第2 語(yǔ)言基 -1.1.X=[x1x2x3x4]A=[1001;4210;-7111;613-1]>>A=[1001;4210-7;A=
111;613-1],B=[0-8-21],x=B/ - B - - x3.0000-4. -1. 1.>>B*inv(A)ans=3.0000-4. -1. 1.中求秩運(yùn)算是由函數(shù)rank(A)完成。>>B=[B3-93;1-34;-2-396],rb=rank(13-301-4-- rb2 中,求矩陣A的特征值和特征向量的數(shù)值解,有兩個(gè)函數(shù)可用:一是[X,]=eig(A),另一是[X,]=eigs(A)。但后者因采用迭代法求解,在規(guī)模上最多只給出6個(gè)>>A=[1-33;3-53;6-64],[X,Lamda]=eigA - - - X0. 0.4082-0.0.-0.-0.0.-0.-0.Lamda4. -2LamdaA的特征值為1=42=3=-2。而與這些特征值相應(yīng)的特征X的各列來(lái)代表,X1列是1的特征向量,第2列是2的,其在中,矩陣的乘冪運(yùn)算與線性代數(shù)相比已經(jīng)做了擴(kuò)充,性代數(shù)中,一個(gè)矩陣A自己連乘數(shù)遍,就構(gòu)成了矩陣的乘方,例如A3。但3A這種形式性代數(shù)中就沒(méi)有明確定義了,而則承認(rèn)其并可進(jìn)行運(yùn)算。矩陣的乘方有自己的運(yùn)算同樣地,矩陣的開(kāi)方運(yùn)算也是自己定義的,它的依據(jù)在于開(kāi)方所得矩陣相乘正好等于被開(kāi)方的矩陣。矩陣的開(kāi)方運(yùn)算由函數(shù)sqrtm(A)實(shí)現(xiàn)。>>A=[1-33;3-53;6-64]>>A^ans28-36-72->>A^1.ans1.70970.6752-3.-0.67523.5683+0.67523.+0.6752-5.-2.02563.5683+0.67527.+1.3504-7.-1.35045.2780-0.0000>>3ans40.-40.40.40.-40.40.80.-80.81.2A1=sqr=1.0000+0.7071-1.+0.7071 1.0.70711.0000-0.7071-1.+2.1213 1.0.70712.0000-1.4142-2.+1.4142 2.00000.0000A1^ans1.00000.0000-3.+0.00003.3.00000.0000-5.+0.00003.0.00006.00000.0000-6.+0.00004.0.0000本例中,矩陣A的非整數(shù)次冪是依據(jù)其特征值和特征向量進(jìn)行運(yùn)算的,如果用X表示特征向量,Lamda表特征值,具體計(jì)算式是A^p=Lamda*X.^p/Lamda。需要的是,矩陣的乘方和開(kāi)方運(yùn)算是以矩陣作為一個(gè)整體的運(yùn)算,而不是針對(duì)矩陣每個(gè)元素施行的。強(qiáng)調(diào)的目的在于與2.4.3節(jié)數(shù)組的乘冪和開(kāi)方運(yùn)算相區(qū)別。常用的是expm(A);而對(duì)數(shù)運(yùn)算函數(shù)則是logm(A)。>>A=[1-11;2-41;1-53]A=1-12-11-3>>Ae=expm(A)Ae=1.-3.4.0.-2.2.-2.-7.9.>>Ael=logm(Ae)Ael=1.-1.1.2.-4.1.1.-5.3.在中,矩陣的轉(zhuǎn)置被分成共軛轉(zhuǎn)置和非共軛轉(zhuǎn)置兩大類(lèi)。共軛轉(zhuǎn)置有專(zhuān)門(mén)2-2中。但就一般實(shí)矩陣而言,共軛轉(zhuǎn)置與非共軛轉(zhuǎn)置的效果沒(méi)有區(qū)別,>>a=1:a >>A=reshape(a,3,3A1472583>>B=A69B123456789>>Z=A+i*BZ=1.0000+1.00004.+2.00007.+3.00002.0000+4.00005.+5.00008.+6.00003.0000+7.00006.+8.00009.+9.0000>>Zans1.00001.00002.00004.00003.00007.00004.00002.00005.00005.00006.00008.00007.00003.00008.00006.00009.00009.0000>>transpose(A)ans=123456789>>transpose(Z)ans=1.0000+1.00002.+4.00003.0000+7.00004.0000+2.00005.+5.00006.0000+8.00007.0000+3.00008.+6.00009.0000+9.0000這些函數(shù)如表2-10所示。2-10矩陣結(jié)構(gòu)形式提取與翻轉(zhuǎn)函 提取矩陣A的右上三角元素,其余元素提取矩陣A的左下三角元素,其余元素提取矩陣A的對(duì)角線元 矩陣A沿水平軸上矩陣 矩陣A沿水平軸上矩陣A沿垂直軸左矩陣A沿特定軸翻轉(zhuǎn)。dim=1,按行翻轉(zhuǎn);dim=2,按列翻矩陣A整體逆時(shí)針>>a=linspace(1,23,12)a=>>A=reshape(a,4,3)'A= >>fliplr(A)ans=7531>>flipd2ans7531>>flipd1ans1357>>triu(A)ans= >>tril(A)ans=
10009000>>diagans數(shù)組是一般高級(jí)語(yǔ)言中都有的概念,但它在中卻又表現(xiàn)出個(gè)性。間的加減乘除就直接在元間對(duì)應(yīng)展開(kāi),而無(wú)需用到循環(huán)語(yǔ)句。它的優(yōu)點(diǎn)是利用數(shù)組結(jié)數(shù)組元素的次數(shù)組元素的次序?qū)嶋H就是二維數(shù)組(或矩陣)元素原則的擴(kuò)展。以一個(gè)m×n×lAm×n的二維數(shù)組(表)疊放而成的,如果用符i表示每個(gè)二維數(shù)組(表)j表示每個(gè)二維數(shù)組(表)的列下標(biāo),另外再用k表示數(shù)A的另一維(稱為頁(yè)的)下標(biāo),那么數(shù)Ai行、第j列、第k頁(yè)的元素就可表示為A(i,j,k)。表2-11數(shù)組B的各元素次元元元元1472583691.第2 語(yǔ)言基 >>A123456789Breshape101833 >>C(:,:,1A;C(:,:,2B >> 三維數(shù)組C,留意三維數(shù)組的表示形C(:,:,1=123456789C(:,:,2=.>>zeros(2,3,3ans(:,:,1=000000ans(:,:,2=000000ans(:,:,3=000000>>ones(2,3,2,2ans(:,:,1,1) 1 1ans(:,:,2,1) 1111ans(:,:,1,2) 1111ans(:,:,2,2) 1111>>rand(2,3,2)ans(:,:,1)=0. 0. 0. 基礎(chǔ)及其應(yīng)用0.2311ans(:,:,2=0.0.0.0.0.0.0.0.>>randn(2,2,2ans(:,:,1=-0.0.-1.0.ans(:,:,2-1.=1.1.1909-0.3.A1=[=23;87;456],A2=A1.123987456=194285376>>cat3A1A2 ans(:,:,1=123987456ans(:,:,2=194285376>>repmat(A1112])%2表示在頁(yè)方向上放兩個(gè)矩陣A1,形成共有兩頁(yè)的三維數(shù)ans(:,:,1=123987456ans(:,:,2=123987456>>A=1:>>reshape(A,3,3,2) ans(:,:,1)=2語(yǔ)言基 147258369ans(:,:,2=>>A1=[654321];B1=[123456]>>C1=A1+B1,C2=C1-B1,C3=A1.*B1C1=777777=654321=66>>A2=reshape(A1,2,3),B2=reshape(B1,2,3)A2=642531=135246>>D1=A2+B2,D2=3.*A2,D3=A2.*B2 D1=777777D2693D366>>A3=cat(3,D2,D3),B3=repmat(D1,[1,1,2])A3(:,:,1)=基礎(chǔ)及其應(yīng)用693A3(:,:,2=66B3(:,:,1=777777B3(:,:,2=777777>>A3.ans(:,:,1=ans(:,:,2=在表2-3中。>>D1./ans1.1.1.1.1.1.>>4./ans0.0.0.0.0.0.>>A3 ans(:,:,1=2.1.0.2.1.0.ans(:,:,2=0.1.1.1.1.0.>>B3.\ans(:,:,1=2.1.0.2.1.0.ans(:,:,2=0.1.1.1.1.0.第2 語(yǔ)言基 >>A=[123;456];A2p=A.^2,App=A.^1.5A2p= App1.2.5.8.11.14.As=sqrt=1.1.1.2.2.2. App1=sqrt(A.^3)App1=
A.^15的結(jié)果相比1.2.5.8.11.14.>>A=[123;456]A= >>Ae=exp(A),Al=log(A)Ae=2.7.20.54.148.403.=00.1.1.1.1.'>>a=[123;456];b=[234;567]>>A=a+i*bA=1.0000+2.0000 2.0000+3.0000 3.0000+4.00004.0000+5.0000 5.0000+6.0000 6.0000+7.0000>>B=A.'B=0000+2.0000 4.0000+5.00000000+3.0000 5.0000+6.00000000+4.0000 6.0000+7.0000批量地參與運(yùn)算。了解這些有利于準(zhǔn)確理解的矩陣與數(shù)組運(yùn)算,有利于弄清這在2.1.5紹的運(yùn)算符時(shí)已經(jīng),系與邏輯運(yùn)算盡管可以將其為矩陣的運(yùn)算,但認(rèn)真分析關(guān)系與邏輯運(yùn)算的規(guī)則,不難發(fā)現(xiàn),它們地體現(xiàn)了數(shù)組運(yùn)算的特征,譬如,兩個(gè)矩陣的關(guān)系邏輯運(yùn)算是元素一對(duì)一的關(guān)系比較或邏輯運(yùn)算,這一點(diǎn)與數(shù)組的各種代數(shù)運(yùn)算法則是一脈相承的。又如,參與關(guān)系與邏輯運(yùn)算的兩矩陣必須同階(行、列數(shù)分別相同)2-46種關(guān)系運(yùn)>>A=magic(6)A= >>P=mod(A,P)001001100100010010001001100100010010第2 語(yǔ)言基 那么,mod(A,B)==0的結(jié)果就為1,否則為0。矩陣P正反映了這一結(jié)果。62-55個(gè)運(yùn)算符,因異或運(yùn)算沒(méi)有運(yùn)算or()、not()。>>A=pascal(3),B=eye(3A111123B1361000100>>01an=1000100>>A|01an=111111111>>ans011101110>>xor(A,B)ans=0111011>>a=0;b=110>>a&&bans=0>>a=1;b=0>>a||ans1算符在中是有定義的。的目的,這些函數(shù)可能經(jīng)常會(huì)被采用,所以,表2-12列出了這些函數(shù)。2-12常用的邏輯運(yùn)算函 功能說(shuō)用單下標(biāo)表示返回?cái)?shù)組A0元素的下標(biāo)>>A=[A23;45;901230458>>all,190ans >>all(A,2)ans=100>>B=1:4B= >>any(B)ans=1>>any(B,1)ans= >>any(B,2)ans=1>>isnanans
第2 語(yǔ)言基 >>isnumeric(A)ans=1在中,除了少數(shù)由運(yùn)算符定義的矩陣或數(shù)組運(yùn)算外,還有大量的運(yùn)算是通數(shù)遠(yuǎn)不止這些,依靠函數(shù)實(shí)現(xiàn)的運(yùn)算幾乎涵蓋了所有可能的應(yīng)用領(lǐng)域或各種可是sqr()exp()o(),而是qr()exp()、o()么 必須為矩和組函運(yùn)提兩套數(shù)號(hào)果此,種銷(xiāo)屬余因所謂的矩陣數(shù)算多情下正的用象數(shù)非矩,為多情下針對(duì)矩陣中每個(gè)素函運(yùn),而矩整。一來(lái)只定一針數(shù)的運(yùn)算函數(shù)號(hào)可了若需針對(duì)陣運(yùn)時(shí)在利數(shù)函的礎(chǔ),用所謂通用式可。 sqrtm(A)相互等效。依此類(lèi)推,矩陣A的對(duì)數(shù)函數(shù)可表達(dá)為funm(A,‘log’)。算函數(shù),如表2-13、表2-14、表2-15所示。如果需要,這些函數(shù)都可用通用格式完2-13基本數(shù)學(xué)函10為底的對(duì)求a/b的有符號(hào)余求c/m以e為底的對(duì)2-14基本三角函2-15函不完全的函函>>ang=0:2:90;angle1=ang.*pi/180>>sin(angle1)ans=Columns1through 0. 0. 0. 0. 0. .Columns8thr 0.0.0.0.0.0.0.Columnsthr0.0.0.0.0.0.0.Columnsthr0.0.0.0.0.0.0.Columnsthr0.0.0.0.0.0.0.Columnsthr0.0.0.0.0.0.0.Columns430.99450.0.1.0°~9046個(gè)函數(shù)值。通過(guò)此例,讀者可初次體會(huì)到的數(shù)組運(yùn)第2 語(yǔ)言基 >>A=[A34;67;891023456789>>B=funm(A,'log10')B=-2.4810+0.94565.+0.2274-2.3901-0.49085.6293+0.0903-10.+0.02175.7600-0.0469-2.1288-0.76505.-0.1840-1.9584+0.3971當(dāng)把A視為數(shù)組時(shí),下面給出了相應(yīng)的計(jì)算結(jié)果。請(qǐng)與例2.45比較,體會(huì)數(shù)組與矩陣>>Ba=log10(A)Ba=0.0.0.0.0.0.0.0.1.字符串當(dāng)把某個(gè)字符串賦值給一個(gè)變量后,這個(gè)變量便因取得這一字符串而被作為字符串變量來(lái)識(shí)別。更進(jìn)一步,當(dāng)觀察的工作空間窗口時(shí),字符串變量的類(lèi)型是字符數(shù)組類(lèi)型(chararray)。而從工作空間窗口去觀察一個(gè)一維字符數(shù)組時(shí),也發(fā)現(xiàn)>>S1='gohome',S2朝聞道,夕死可矣',S3gohome.朝聞道,夕死可矣'S1=gohomeS2=S3gohome.朝聞道,夕死可>>Sa=['Ilovemyteacher,' 'I' lovetruths' 'moreprofoundly.']Sa=Ilovemyteacher,Ilovetruthsmoreprofoundly>>Sb=char('a':2:'r')Sb=acegi
>>Sc=char(linspace('e','t',10)) Sc=efhjkmoprSa在工作空間窗口中的各項(xiàng)數(shù)據(jù),尤其是size的大小,不要以為它只有4個(gè)元素,從中體會(huì)Sa作為一個(gè)字符數(shù)組的真正含義。小。兩者的關(guān)系是:length()=max(size())。請(qǐng)仔細(xì)體會(huì)下面的舉例。>>Sa=['Ilovemyteacher, 'I lovetruths 'moreprofoundly.']>>length(Sa)ans=>>size(Sa)ans= >>A=[123;456]>>length(A)ans=3>>A=[12;45;67]>>length(A)ans=3>>size第2 語(yǔ)言基 ans ASCII碼中,每個(gè)字符又可對(duì)應(yīng)一個(gè)數(shù)值編碼,例如字符A對(duì)應(yīng)65。如此一來(lái),字符串又可在一個(gè)一維數(shù)值數(shù)組之間找到某種對(duì)應(yīng)關(guān)系。這就構(gòu)>>S1='Iamnobody'>>As1=abs(S1)As1= >>As2=double(S1)As2= >>char(As2)ans=Iam>>setstr(As2)ans=Iamstrcmp(S1,S2)是的字符串比較函數(shù)S1S2完全相同時(shí),返回值1;否則,返回值為0。>>S1='Iamnobody'>>S2='Iamnobody.'>>strcmp(S1,S2)ans=0>>strcmp(S1,S1)ans=1>>S='Ibelievethatloveisthegreatestthingintheworld.'>>findstr(S,'love')ans= )是一個(gè)原樣輸出其中內(nèi)容中做提示說(shuō)明其用法見(jiàn)下例。>>disp兩串比較的結(jié)果是Result=strcmpS1S1disp('1則說(shuō)明兩串完全相同,為0則不同。') num2str int2strResult=1 >>S1=路修遠(yuǎn)以多>>S2='騰眾車(chē)使徑侍。';>>S3=路不周以左>>S4='指西海以為期!';>>S=[S1;S2,' ';S3;S4,''] S=>>SS1S2,' ';S3S4 ???Errorusing==>vertcaAll rowsinthebracketedexpressionmusthavethesamenumberofcolumns.2.54char、strvcat()和str2mat()這3個(gè)函數(shù)。>>S1a='I''mnobody,';S1b='whoareyou >>S2='Areyounobodytoo?'>>S3='Thenthere''sapairofus.'>>SS1=char([S1a,S1b],S2,S3)SS1=I'mnobody,whoareyou?Areyounobodytoo?Thenthere'sapairofus>>SS2=strvcat(strcat(S1a,S1b),S2,S3)SS2=I'mnobody,whoareyou?Areyounobodytoo?
第2 語(yǔ)言基 Thenthere'sapairofus>>SS3=str2mat(strcat(S1a,S1b),S2,S3)SS3=I'mnobody,whoareyou?Areyounobodytoo?Thenthere'sapairofus()() 不例外。但是的特殊性在于它對(duì)上述這些要件做了多方面的擴(kuò)充或拓展。從字符串的許多運(yùn)算或操作中不難看出,C語(yǔ)言非常相近,目C語(yǔ)言和其他高級(jí)語(yǔ)言保持良好的接口能力。認(rèn)清這點(diǎn)對(duì)進(jìn)行大型程序設(shè)計(jì) 矩陣每一行中的元間要用某個(gè)符號(hào)分隔,這個(gè)符號(hào)可以是 )A.分 B.減 C.回 D.空ones(n,m)函數(shù)是用來(lái)產(chǎn)生特殊矩陣的,由它形成的矩陣稱為 )A.單位矩 B.行向 C.1矩 D.列向 )A. B C. D.當(dāng)a=-3.2,使用取整函數(shù)得出-4,則該取整函數(shù)是 )A. B. C. D.表達(dá)式ax3+by2改寫(xiě) 的語(yǔ)句形式是 )A. B.C. D.已知a=0:1:4,b=5:-1:1,下面的運(yùn)算表達(dá)式出錯(cuò)的是 )A. B. C. D.將矩陣a=[123;456;789]改變成b=[369;258;147]令是 )A. B. C. D.使用函數(shù)zeros(5)生成的是一個(gè)具有5 strcat()和strvcat()abs()是一個(gè)針對(duì)數(shù)值量求絕對(duì)值的函數(shù)。 )funm(A,‘log’)和logm(A)A=[1234;5678;9101112;13141516]x=[2,4],當(dāng)對(duì)它進(jìn)C=A(x x為從04步長(zhǎng)0.1的向 結(jié)果是 A=linspace(2,18,9);B=reshape(A,3,3)的執(zhí)行結(jié)果是:B=。第3 數(shù)值算法,并要求這些數(shù)值算法能在中實(shí)現(xiàn)。多項(xiàng)項(xiàng)式一般可表示為以下形式:f(x)axnaxn1axn2 xa。當(dāng)x是矩陣形 在中,多項(xiàng)式表示成向量的形式,它的系數(shù)是按降序排列的。只需將按降冪次序的多項(xiàng)式的每個(gè)系數(shù)填入向量中,就可以在中建立一個(gè)多項(xiàng)式。例如,s43s315s22sx=[13-15-2s4在環(huán)境下表示
y=[1000a(xx32x23x4b(x)x34x29x16做加減乘除運(yùn)算為例,說(shuō)明多項(xiàng)式的四則多項(xiàng)式相加,即c(xa(xb(xc(x)2x36x212xd(x)a(x)b(xd(x)2x26x多項(xiàng)式相乘,即e(x)a(x)b(x)e(x)x66x520x450x375x284xf(xe(x)a(xf(x)x32x23x加減的兩個(gè)多項(xiàng)式的階次不會(huì)相同,這時(shí)可以自定義一個(gè)函數(shù)polyadd來(lái)完成兩個(gè)多項(xiàng)式的相加。以下函數(shù)是由密西根大學(xué)的JustinShriver編寫(xiě)的。(6.1節(jié))function[poly]=polyadd(poly1,poly2%polyadd(poly1,poly2)addstwopolynominalspossiblyofunevenlengthiflength(poly1)<length(poly2)short=poly1;long=poly2;else
short=poly2;long=poly1;mz=length(long)-length(short);ifmz>0end
poly=[zeros(1,mz),short]+long;poly=long+short;將這個(gè)函數(shù)生成polyadd.m文件,并將該文件保存在 下,這樣polyadd函數(shù)就可以和 【例3.1】調(diào)用polyadd函數(shù)來(lái)完成兩個(gè)同階次多項(xiàng)式:a(xx32x23x4b(xx34x29x16>>a=[1234]>>b=[14916]>>c=polyadd(a,b) 3.2polyadd函數(shù)來(lái)完成兩個(gè)不同階次多項(xiàng)式:m(xx2,n(xx24x第3 數(shù)值運(yùn) >>m=[12]>>n=[147]>>s=polyadd(m,n) 3.3a(xx32x23x4b(xx34x29x16的相>>a=[1234]>>b=[14916]>>d=polyadd(a,-b)d= - - -的卷積來(lái)完成。convconvc=conv(a,b),其a,b代表兩個(gè)多項(xiàng)式的系數(shù)向量,函數(shù)conv也可以嵌套使用,如conv(conv(a,b),c)。3.4a(xx32x23x4b(xx34x29x16的相>>a=[1234]>>b=[14916]>>e=conv(a,b)e= 3.5m(xx2n(xx24x7>>m=[12]>>n=[147]>>p=conv(m,n)p= 數(shù)deconv的語(yǔ)法為[q,r]=deconv(a,b),其中q,r分別代表整除多項(xiàng)式及余數(shù)多項(xiàng)式。3.63.4f(xe(x)a(x>>[f,r]=deconv(e,b)f= r (s21)(s2)(s【例3.7】 s3s >>p1=conv([101conv([1211])); %計(jì)算分子多項(xiàng)>>p2=[1011]>>[q,r]=deconv(p1,p2)q= r -即表示商多項(xiàng)式為s+3,余多項(xiàng)式為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版科技成果轉(zhuǎn)化合作協(xié)議書(shū)3篇
- 2024年紡織品出口銷(xiāo)售協(xié)議3篇
- 教育培訓(xùn)銷(xiāo)售員工工作總結(jié)
- 銀行行業(yè)業(yè)務(wù)員工作總結(jié)
- 消化科護(hù)士照顧入微
- 產(chǎn)后護(hù)理護(hù)士關(guān)注產(chǎn)婦康復(fù)
- 2024期貨居間業(yè)務(wù)合作協(xié)議樣本:傭金結(jié)算與居間人義務(wù)3篇
- 2024房地產(chǎn)公司股份買(mǎi)賣(mài)具體合同版B版
- 2024投資入股協(xié)議書(shū)-航空領(lǐng)域樣板3篇
- 《19棉花姑娘》課件的改革之路
- 2024-2025學(xué)年五年級(jí)科學(xué)上冊(cè)第二單元《地球表面的變化》測(cè)試卷(教科版)
- 污泥(廢水)運(yùn)輸服務(wù)方案(技術(shù)方案)
- 2024-2030年中國(guó)降壓藥行業(yè)市場(chǎng)規(guī)模分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 二十屆三中全會(huì)精神應(yīng)知應(yīng)會(huì)知識(shí)測(cè)試30題(附答案)
- 一例下肢靜脈血栓疑難病例護(hù)理討論
- 2024年信息系統(tǒng)項(xiàng)目管理師題庫(kù)及答案
- 輸血相關(guān)法律法規(guī)臨床輸血安全管理課件
- DL∕T 5161.6-2018 電氣裝置安裝工程質(zhì)量檢驗(yàn)及評(píng)定規(guī)程 第6部分:接地裝置施工質(zhì)量檢驗(yàn)
- DL∕T 1502-2016 廠用電繼電保護(hù)整定計(jì)算導(dǎo)則
- 《吃飯有講究》教學(xué)反思
- 《公路建設(shè)項(xiàng)目數(shù)據(jù)管理、交付及電子文件歸檔管理規(guī)范》
評(píng)論
0/150
提交評(píng)論