MATLAB陣列之輸入與處理 資管碩一 9734521 蘇柏屹
陣列輸入與陣列結構 一、矩陣與陣列的意義 二、六種陣列輸入法 三、陣列處理 命令視窗輸入法 Load指令輸入法 Import Data匯入法 自建M檔(M-file)法 Xlsread指令載入法 內建函式法 三、陣列處理
陣列輸入與陣列結構 MATLAB為MATrix LABoratory的縮寫。 MATLAB在進行運算時是以矩陣(MATrix)為核心。 輸入與輸出變數皆以矩陣或陣列型態表示 當矩陣脫離線性代數領域時,矩陣成為一個二維數值性陣列(Array),矩陣是陣列其中一種形式 矩陣(matrix):用途在於解線性(linear)聯立方程式組
陣列的意義 陣列(array):將一系列的數值集合起來並用一個單一變數名稱加以表示 向量(vector):一維陣列稱之向量。又可分成行向量(column vector)和列向量(row vector) 矩陣(matrices):二維陣列稱之矩陣 純量(scalar):不具方向性的數值 矩陣的維度可以三維以上,如三維陣列
陣列的意義 純量(scalar):如-1,3,5,99等分別為單純的一個量 向量(vector):一系列的數值集合。 以純量方式水平擴展可得一列向量 Ex:[1 2 3] 以純量方式垂直擴展可得一列向量 Ex:
陣列的意義 矩陣(matrices):一系列數值集合。若以純量方式水平擴張又垂直擴張,可構成一個二維的平面矩陣 Ex:
陣列的意義 矩陣的尺寸(size,即矩陣大小)是以維度(dimension)表示 一個維度為m x n的矩陣表示此矩陣有m列與n行的數值集合 Ex此矩陣維度4 x 3,表示有4列及3行數值集合
陣列輸入法 命令視窗輸入法 Import Data匯入法 自建M檔(M-file)法 xlsread指令載入法 內建函式法
命令視窗輸入法 直接在命令視窗輸入矩陣,可分成 列向量(一維陣列)輸入法 行向量(一維陣列)輸入法 矩陣(二維陣列)輸入法 三維陣列輸入法 [ ] 為矩陣起始符號
命令視窗輸入法 列向量(一維陣列)輸入法
命令視窗輸入法 行向量(一維陣列)輸入法一:『;』切割列向量
命令視窗輸入法 行向量(一維陣列)輸入法二:『;』切割列向量
命令視窗輸入法 行向量(一維陣列)輸入法三:Enter鍵切割列向量
命令視窗輸入法 行向量(一維陣列)輸入法四:列向量轉置法
命令視窗輸入法 矩陣(二維陣列)輸入法一:用空白鍵+『;』
命令視窗輸入法 矩陣(二維陣列)輸入法二:用『 , 』+『;』
命令視窗輸入法 矩陣(二維陣列)輸入法三:用空白鍵+ 『 , 』+『 ; 』
命令視窗輸入法 矩陣(二維陣列)輸入法四:用Enter鍵
命令視窗輸入法 矩陣(二維陣列)輸入法五:用Enter鍵+『 ; 』
Load指令載入法 載入外部資料檔案必須為純文字(.txt)之數值資料檔,變數名稱會以檔案名稱命名 Windows檔案名稱可以有空白,但是Matlab變數名稱不能有空白
Import Data匯入法 step1:
Import Data匯入法 Step2: 匯入txt檔
Import Data匯入法 Step3:
Import Data匯入法 Step4:
Import Data匯入法 Step5:變數名稱以檔案名稱命名
自建M檔法 M檔是指包含MATLAB指令的文字檔 利用編輯視窗建立一個副檔名為M的命令巨集
自建M檔法 M檔內容必須為MATLAB指令
自建M檔法 Run已編輯好的M檔
自建M檔法 執行結果
Xlsread指令載入法 Xlsread指令載入檔案必須為Excel檔(.xls)
Xlsread指令載入法 XLSREAD(FILE,SHEET,RANGE) File:指定檔案所在路徑並讀取檔案名稱,成為matlab變數名稱 Sheet:指定讀取sheet1,sheet2,sheet3….,如果沒指定系統會自動讀取左邊數過來第一個sheet Range:指定讀取範圍(ex:B3~B5),如果沒有指定就是全部
內建函式法 MATLAB內建函式 函式名稱 函式說明 eye(n) 建立nxn單位矩陣 ones(m,n) 建立mxn矩陣,且元素皆為1 zeros(m,n) 建立mxn矩陣,且元素皆為0 randn(m,n) 以常態分配隨機產生器建立mxn矩陣 magic(n) 建立nxn行列加總值相同之奇異矩陣 size(x) 建立矩陣x之維度向量 diag(x,k) 建立x矩陣之k-th對角向量,k=0為主對角向量
內建函式法 eye(n):建立nxn單位矩陣
內建函式法 ones(m,n):建立mxn矩陣,且元素皆為1
內建函式法 zeros(m,n):建立mxn矩陣,且元素皆為0
內建函式法 randn(m,n):以常態分配隨機產生器建立mxn矩陣 randn(n,m) 是分別產生一常態亂數矩陣,其平均數為0變異數為1。
內建函式法 magic(n):建立nxn行列加總值相同之奇異矩陣
內建函式法 size(x):建立矩陣x之維度向量 建立矩陣X之維度的列向量
內建函式法 diag(x,k):建立x矩陣之k-th對角向量,k=0為主對角向量
陣列處理 一、冒號運算元 二、linspace與logspace函數 三、find函數 四、陣列水平與垂直合併 五、陣列重排 六、陣列刪除與擴張
冒號運算元 冒號運算元可用來建構和操作陣列 冒號如果用來分開兩個數字,MATLAB會自動產生這兩個數字之間增量(increment)為1的所有數字 冒號如果用來分隔三個數字,MATLAB會產生一個向量,此向量的元素介於第一個數字與第三個數字之間,第一個數字為此向量第一個元素,其他元素以第二個數字當作增量
冒號運算元
冒號運算元
冒號運算元 冒號可用來選取陣列個別的列或行。在某一個下標位置使用冒號時,冒號表示選取該陣列的一整行或一整列
冒號運算元 擷取cprice10第i(=3)列,格式cprice10(i,:),『:』可用1:end代替
冒號運算元 擷取整個cprice10矩陣
冒號運算元 堆疊矩陣cprice10成為一個行向量
冒號運算元 擷取矩陣cprice10之第i至第j列與第m至第n行,格式X(i:j,m:n)
冒號運算元 擷取矩陣cprice10中不連續的元素
linspace函數 Linspace函數可以產生固定間隔數值的列向量 格式:linspace(x1,x2,n)
linspace函數
logspace函數 logspace函數可建立以對數為區隔的列向量 格式:logspace(x1,x2,n)
logspace函數 在10-1與102之間產生以對數為區隔的四個數
find函數 find指令:找出滿足條件的索引
陣列處理 陣列水平與垂直合併 陣列重排 陣列刪除與擴張
陣列水平合併 格式:cat(2, A, B),數字 2 表示將陣列 A 與 B 左右水平並排 列維度要相同
陣列垂直合併 格式:cat(1, A, B),數字 1 表示將陣列 A 與 B 上下垂直並排 行維度要相同
陣列重排
陣列刪除
陣列擴張