參考書籍
《matlab 程序設計與綜合應用》張德豐等著 感謝張老師的書籍,讓我領略到matlab的便捷
《MATLAB技術大全》葛超等編著 感謝葛老師的書籍,讓我領略到matlab的高效git
數組是MATLAB進行計算和處理的核心內容之一,出於快速計算的須要,MATLAB總把數組看做存儲和運算的基本單元,標量數據也被看做是1×1的數組。所以,數組的建立、尋址和操做就顯得很是重要。MATLAB提供了各類數組建立的方法和操做方法,使得MATLAB的數值計算和操做更加靈活和方便數組建立和操做是MATLAB運算和操做的基礎,針對不一樣維數的數組,MATLAB提供了各類不一樣的數據建立方法,甚至能夠經過建立低維數組來獲得高維數組github
(1)直接輸人法:此時,能夠直接經過空格、逗號和分號來分隔數組元素,在數組中輸人任意的元素,生成一維數組。
(2)步長生成法:x=a:inc:b,在使用這種方法建立一維數組時,a和b爲一維向量數組的起始數值和終止數值,inc爲數組的間隔步長;若是a和b爲整數時,省略inc能夠生成間隔爲1的數列。根據a和b的大小不一樣,inc能夠採用正數,也能夠採用負數來生成一維向量數組
(3)等間距線性生成方法:x=linspace(a,b,n),這種方法採用函數在a和b之間的區間內獲得n個線性採樣數據點。
(4)等間距對數生成方法:x=logspace(a,b,n),採用這種方法時,在設定採樣點總個數n的狀況下,採樣經常使用對數計算獲得n個採樣點數據值數組
一維數組能夠是一個行向量,也能夠是一列多行的列向量在定義的過程當中,若是元素之間經過「;」分隔元素,那麼生成的向量是列向量;經過空格或逗號分隔的元素則爲行向量。固然列向量和行向量之間能夠經過轉置操做「'」來進行相互之間的轉化過程。但須要注意的是,若是一維數組的元素是複數,那麼通過轉置操做「'」後,獲得的是複數的共軛轉置結果,而採用點一共軛轉置操做時獲得的轉置數組,並不進行共軛操做編輯器
二維數組(也就是矩陣)能夠經過如下幾種方法來建立。
(1)直接輸人二維數組的元素來建立,此時,二維數組的行和列能夠經過一維數組的方式來進行建立,不一樣行之間的數據能夠經過分號進行分隔,同一行中的元素能夠經過逗號或空格來進行分隔
(2)經過MATLAB的ArrayEditor來輸人二維數組。建立方法爲,單擊NewVariable建立圖標,此時系統在工做空間的變量列表中出現新的矩陣變量,用戶能夠改變變量的名稱。同時,在MATLAB的工做空間出現矩陣編輯器表格,能夠直接輸人矩陣的數據。
(3)對於大規模的數據,能夠經過數據表格方式來輸人,此時能夠單擊選擇工做空間的ImportData圖標,選中已經編寫好的矩陣數據文件後,導人工做空間中。
(4)能夠經過MATLAB所提供的其餘函數來生成二維數組。
函數
多維數組(n維數組),如在三維數組中存在行、列和頁這樣三維,即三維數組中的第三維成爲頁。在每一頁中,存在行和列。在MATLAB中,能夠建立更高維的n維數組。但實際上主要用到的仍是三維數組。三維數組的建立方法有如下幾種。
(1)直接建立方法。在生成過程當中,能夠選擇使用MATLAB提供的一些內置函數來建立二維數組,如zeros、ones、rand、randn等
(2)經過直接索引的方法進行建立
(3)使用MATLAB的內置函數reshape和repmat將二維數組轉換爲三維數組。
(4)使用cat函數將低維數組轉化爲高維數組。學習
cat(dim,A,B)按dim來聯結A和B兩個數組
spa
在二維數組進行排序時,sort函數只對數組的列進行排序,若是隻對行進行排序,則須要爲sort函數提供第二個參數2
設計
MATLAB中,子數組搜索功能能夠經過系統提供的find函數進行搜索,返回符合條件的數組的索引數值,對於二維數組能夠返回兩個下標數值。
blog
若是搜索最大值和最小值那麼可使用max和min函數來進行搜索,若是搜索的是二維數組,那麼這兩個函數返回每一列的最大值和最小值
排序
在對角元素和上下三角矩陣時,所定義的第二個參數是以對角線k=0的起始對角線,向上三角方向移動時,k的數值增長,而向下三角方向移動時,k的數值減少。此外,對於非方陣的矩陣,對角線以過第一個元素的方陣的對角線爲對角線的起始位置
對於kron函數執行的是kronecker的張量乘法運算,即將第一個參數數組的每個元素和第二個參數數組相乘,造成一個分塊矩陣,張量乘法不具備可交換性。