官术网_书友最值得收藏!

1.1MATLAB概述

MATLAB是美國Mathworks公司于 1984 年推出的一套數值分析和矩陣運算軟件,經過幾十年的發展,現已成為一種高度集成的計算機語言,是當今科技領域內最具影響力、最有活力的軟件之一,被廣泛應用于數據處理、科學繪圖、控制系統仿真、數字圖像處理、通信系統設計以及財務金融等領域。

1.1.1 操作界面

MATLAB軟件安裝完成后,可通過創建的桌面快捷方式;也可以到 “開始” 菜單里查找安裝的軟件;還可以到軟件的安裝目錄里,打開bin文件夾,單擊其中的matlab.exe文件,都可啟動 MATLAB 軟件,啟動后MATLAB操作界面如圖1-1所示。

操作界面包括當前文件夾、命令行和工作區等3個窗口。

圖1-1MATLAB操作界面

1.當前文件夾

當前文件夾是指MATLAB運行文件的工作文件夾,只有在當前文件夾或搜索路徑下的文件及函數可以被直接運行或調用,如果沒有特殊指明,數據文件也將存儲在當前文件夾下。通常很多人都習慣于建立自己的工作文件夾,便于文件和數據的管理,因此在運行文件前要將該文件所在的文件夾設置為當前文件夾。

2.命令行窗口

命令行窗口用于輸入MATLAB命令、函數、矩陣及表達式等信息,并顯示除圖形以外的所有計算結果,是MATLAB的主要交互窗口。當命令行窗口出現提示符>>時,表示MAT-LAB已準備好,可以輸入命令、變量或函數,按 〈Enter〉 鍵后就可執行。

例1-1】 計算A=512/8-50×2+120。

命令行窗口顯示結果如下:

例1-2】 計算2sin(π/4)+3cos(π/2)。

命令行窗口顯示結果如下:

MATLAB語法規定,百分號 “%” 后面的語句為注釋語句。注釋語句不參與執行,只用來說明程序或算法,增加程序的可讀性。ans表示在缺省變量名時,系統默認的變量名。

此外,在命令行窗口中單擊方向鍵 〈↑〉,可以調出已經輸入的前一條命令;單擊方向鍵 〈↓〉,可調出當前命令之后的一條命令。

3.工作區

工作區是MATLAB用于存儲各種變量和運算結果的內存空間。在命令行窗口中輸入的變量、運行文件建立的變量、調用函數返回的計算結果等,都將被存儲在工作區中,直到使用了clear命令清除工作區或關閉了MATLAB系統為止。需要注意的是:函數在運行中調用的一些臨時變量,不會占用工作區,這些變量在函數運行結束后將被釋放。

通過工作區窗口可以觀察數據名稱、尺寸及數據類型等信息,為了對變量的內容進行觀察、編輯與修改,可以打開變量編輯器。打開變量編輯器有兩種方法:

1)雙擊變量名;

2)將鼠標指向要觀察的變量名,單擊鼠標右鍵,在彈出的菜單中選擇 “打開所選內容” 選項。變量編輯器如圖1-2所示。

在命令行窗口中,輸入 “whos” 命令,可以顯示保存在工作區的所有變量的名稱、大小、數據類型等信息;輸入 “who” 命令則只顯示變量的名稱。輸入 “clear” 命令,可以清除工作區內所有變量,并釋放系統內存空間;輸入 “clc” 命令則只清除命令行窗口的屏幕顯示內容,而保留工作區內容。

圖1-2 變量編輯器

例1-3】 分別用whos、who檢查 【例1-1】 和 【例1-2】 運行后的工作空間。

命令行窗口顯示結果如下:

命令行窗口顯示結果如下:

1.1.2 幫助系統

MATLAB提供了數目繁多的函數和命令,要把它們全部記下來是不現實的。可行的辦法是先掌握一些基本內容,然后在實踐中不斷總結和積累。因此,通過軟件本身提供的幫助來學習軟件是一個重要的學習方法,MATLAB提供了功能強大的幫助系統,可以很方便地獲得有關函數或命令的使用方法。

1.函數瀏覽器

在命令行窗口內單擊鼠標,使光標停留在命令行窗口,再單擊按鍵 〈Shift+F1〉,MAT-LAB將打開函數瀏覽器窗口,如圖1-3所示。

在函數瀏覽器窗口內,用鼠標指向某個函數,停留片刻,就會彈出對該函數的解釋,使用起來非常方便。

2.help函數

在命令行窗口輸入 “help” 函數,也是MATLAB尋求幫助的一種方便快捷的方法,help函數的用法主要有以下3種:

(1)顯示當前函數信息。在命令行窗口執行完某個函數或命令后,直接輸入 “help”函數,會顯示該函數的用法。例如在命令行窗口輸入如下函數:

圖1-3 函數瀏覽器窗口

命令行窗口顯示結果如下:

此MATLAB函數清除命令行窗口中的所有文本,讓屏幕變得干凈。運行clc后,用戶不能使用命令行窗口中的滾動條查看以前顯示的文本,但可以在命令行窗口中使用向上箭頭鍵〈↑〉 從命令歷史記錄中重新調用語句。

(2)顯示某類函數信息。在 “help” 函數后,輸入某類函數的名稱(需要知道某類函數的名稱或在 “幫助” 文檔中檢索)。例如在命令行窗口輸入如下函數:

命令行窗口部分顯示結果如下:

(3)顯示具體函數的幫助信息。在 “help” 函數后,輸入某個函數的名稱(需要知道該函數的名稱或在 “幫助” 文檔中檢索)。例如在命令行窗口輸入如下:

命令行窗口部分顯示結果如下:

此MATLAB函數將X的每個元素四舍五入為最近的整數。在對等情況下,即有元素的小數部分恰為0.5時,round函數會偏離零四舍五入到具有更大幅值的整數。

注意:MATLAB對字母的大小寫是敏感的,變量A與變量a表示兩個不同的變量。MATLAB所有的命令和函數都必須用小寫,例如round函數,不能寫成Round或ROUND。

函數的幫助信息是把指定函數的注釋內容顯示出來。因此,用戶也可以采用這種注釋結構,構成自己文件的在線幫助。

3.lookfor函數

當用戶希望查找具有某種功能的命令或函數,但又不知道準確名字的時候,可以使用“lookfor” 函數。該函數可以根據用戶提供的完整或不完整的關鍵詞,搜索出一組與之相關的函數。例如查找有關圖像的函數,將image作為關鍵詞來查找,具體如下:

命令行窗口部分顯示結果如下:

4.模糊查詢

用戶只需要輸入函數的前幾個字母(例如im),然后單擊〈Tab〉鍵,就會彈出一個浮動窗口列出以這幾個字母開始的函數,這樣用戶就知道了某個函數的確切寫法,然后再通過help函數查詢其詳細的解釋。

5.在線幫助頁

幫助頁面的所有文件均有相應的PDF格式文件,稱為在線幫助頁,可用Adobe Acrobat Reader軟件閱讀。用戶選中幫助頁面上關于PDF格式文件的選項,或是在命令行窗口中輸入命令doc,都能自動打開在線幫助頁。

1.1.3 數據結構

正如MATLAB的名字——“矩陣實驗室” 的含義一樣,MATLAB是由專門用于矩陣運算的軟件發展起來的,最初的目的是為了解決矩陣運算問題而開發的,所以矩陣是MATLAB最基本、最重要的數據對象。MATLAB大部分運算或函數都是在矩陣運算的意義下執行的,而且這種運算是定義在復數域上的。MATLAB的矩陣運算功能非常豐富,可以支持線性代數所定義的全部矩陣運算,許多含有矩陣運算的復雜計算問題,在MATLAB中很容易得到解決。

1.矩陣和數組

矩陣是指含有M行、N列(M、N為正整數)數據的矩形結構。通過一定的轉化方法,可以將一般的數學運算轉化成相應的矩陣運算來處理。在MATLAB中,單個數值(標量)被看作是只有1行1列、僅含1個元素的矩陣;列向量是只有1列的矩陣、行向量(矢量)是只有1行的矩陣。

數組在結構上與矩陣沒有區別,只是運算規則不同。數組運算是同一位置(坐標)的元素之間的運算,也就是說無論什么運算,對數組中的元素都是平等進行的;矩陣運算是強調整體的運算,采用線性代數的運算方法。MATLAB可以進行上述兩種運算,MATLAB是通過運算符的不同來區別這兩種運算,帶有小黑圓點的運算符就代表相應的數組運算。例如A?B表示矩陣運算;A.?B表示數組運算。

2.數據結構

對于數值數據,MATLAB中最常用的類型為雙精度型,占64 位(8B),用 double 函數實現轉換。此外還有單精度數,占32位(4B),用single函數實現轉換。還有帶符號整數和無符號整數,其轉換函數有int8、int16、int32、uint8、uint16和uint32,每一個函數名后面的數字表示相應數據類型所占位數,其含義不難理解。

除數值數據以外,還有字符數據,在MATLAB中用char函數實現轉換。在一般情況下,數組的每個元素必須具有相同的數據類型,但在實際應用中,有時需要將不同類型的數據構成同一個數組,因此,MATLAB提供了結構體(struct)和單元(cell)數據類型,用戶也可以根據實際應用需要自定義數據類型。此外,MATLAB還提供多維數組以及工程中應用十分廣泛的稀疏矩陣(sparse)。

數據的數值用十進制表示,有日常記數法和科學記數法兩種表示方法,角度則采用弧度制表示。例如:132、2.3000e+012、sin(1.57)等。如果沒有定義,MATLAB默認的數據類型是雙精度型。常用的數據類型如表1-1所示。

表1-1 數據類型一覽表

表1-1中的數據例子可以在命令行窗口直接輸入。MATLAB的數據類型還有一些其他的表達形式,表中沒有列出。在工作區瀏覽器中,不同的數據類型有著不同的圖標標識,在工作區中顯示的數據類型如圖1-4所示。

在圖1-4中,a是字符矩陣,b是有符號8位整型矩陣,c是無符號16位整型矩陣,d是單精度矩陣,e是稀疏矩陣,f是單元數組,g是結構體數組。有些不同類型的數據之間不能夠直接運算,還有一些函數對數據的類型有嚴格的要求,這就需要對數據的類型進行強制轉換。例如:uint8(24)就是把默認的雙精度數據“24”轉化為無符號8位整型數據“24”,對變量也可進行同樣的操作。強制數據類型轉換必須注意數據的取值范圍,避免溢出。

圖1-4 在工作區中顯示的數據類型

請思考一下:輸入b=int8(156),工作區顯示b=127,為什么?

1.1.4MATLAB的特點

MATLAB是以矩陣運算為主要工作方式的數理統計、自動控制、數字信號處理及動態系統仿真等方面的重要工具。MATLAB操作簡單,功能強大,應用廣泛,其特點體現在以下幾個方面。

1.高效方便的矩陣和數組運算

MATLAB語言像C語言一樣規定了矩陣的算術運算符、關系運算符、邏輯運算符、條件運算符及賦值運算符,而且這些運算符大部分可以毫無改變地照搬到數組間的運算,有些運算符(如算術運算符)只要適當改變形式就可用于數組間的運算。另外,MATLAB不須定義數組的維數,并給出矩陣函數和特殊矩陣專用的庫函數,使之在求解信號處理、建模、系統識別、控制及優化等領域的問題時,顯得極為簡捷、高效,這是其他高級語言所不能比擬的。

2.編程效率高

MATLAB語言中最基本、最重要的成分是函數。同一個函數名,不同數目的輸入變量(包括無輸入變量)及不同數目的輸出變量,代表著不同的含義(有點像面向對象中的多態性)。這不僅使MATLAB的庫函數功能更豐富,而且大大減少了所占用的磁盤空間,使得MATLAB編寫的M文件簡單、短小而實用。用MATLAB編寫程序猶如在演算紙上排列出公式和求解問題,因此MATLAB語言也被通俗地稱為 “演算紙式” 的語言。

3.方便的繪圖功能

MATLAB有一系列繪圖函數,所以繪圖十分方便。例如建立線性坐標、對數坐標和極坐標,均只需調用不同的繪圖函數;圖上的標題、坐標軸標注、網格繪制也只需調用相應的函數,簡單易行。另外,在調用繪圖函數時,調整繪圖參數可繪出不同顏色、類型、寬度的點、線、復線或多重線。

4.用戶界面友好

MATLAB語言是一種解釋執行的語言,靈活,方便,其調試程序的手段豐富,調試速度快,方法簡單,使用者在短時間即可學會。MATLAB把編輯、編譯、連接、執行和調試融為一體,能在同一窗口上靈活操作,快速查找輸入程序中的書寫錯誤和語法錯誤。例如直接在命令行窗口輸入語句,每輸完一條MATLAB命令就立即對其進行處理,完成編譯、連接和運行的全過程;在運行M文件時,如果有錯,則會給出詳細的出錯信息,但并非一次顯示所有的錯誤,而是每次運行只顯示第一條錯誤,用戶可以邊修改邊執行,直到正確為止。

5.擴充能力強

MATLAB語言有豐富的庫函數,在進行復雜的數學運算時可以直接調用,而且庫函數同用戶文件在形式上是一樣的,用戶文件也可作為MATLAB的庫函數來調用。因而,用戶可以根據自己的需要方便地建立和擴充庫函數,以提高MATLAB的使用效率和擴充功能。另外,可通過建立Mex調用文件格式進行混合編程,能夠方便地調用有關FORTRAN或C語言的子程序。

6.開放的源程序

開放性也許是MATLAB最受人們歡迎的特點。除內部函數以外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶可通過對源文件的修改以及加入自己的函數文件來構成新的工具箱。

主站蜘蛛池模板: 广南县| 康保县| 南皮县| 南汇区| 定远县| 阿城市| 尼木县| 湘潭市| 思南县| 九龙城区| 深圳市| 房产| 内江市| 永嘉县| 三穗县| 新巴尔虎右旗| 图们市| 玉门市| 图们市| 浮梁县| 莱芜市| 宝清县| 大城县| 乌兰县| 通城县| 县级市| 郓城县| 山阴县| 英吉沙县| 花莲县| 桑日县| 江达县| 鹿邑县| 台南县| 巴塘县| 方正县| 梁河县| 永顺县| 黑水县| 泰安市| 政和县|