- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上版
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料匯出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策語句
- MATLAB - if-end 語句
- MATLAB - if-else 語句
- MATLAB - if-elseif-else 語句
- MATLAB - 巢狀 if 語句
- MATLAB - switch 語句
- MATLAB - 巢狀 switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - for 迴圈
- MATLAB - while 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - break 語句
- MATLAB - continue 語句
- MATLAB - end 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - return 語句
- MATLAB - 無返回值函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序
- MATLAB - map 函式
- MATLAB - mean 函式
- MATLAB - end 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - try...catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 二維線圖
- MATLAB - 三維圖
- MATLAB - 格式化圖形
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製三維等值線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面圖
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 二維陣列插值
- MATLAB - 三維陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換函式
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 二維逆餘弦變換
- MATLAB - 為座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者自定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消元法
- MATLAB - 高斯-約旦消元法
- MATLAB - 簡化行階梯型
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 其他
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣求逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
MATLAB - 陣列函式
陣列函式是 MATLAB 的一個基本方面,因為它們允許你高效地對陣列(也稱為矩陣)執行運算。
讓我們看看下面列出的所有這些陣列函式,包括解釋和示例。
| 函式名稱 | 描述 |
|---|---|
| zeros | 此函式將建立一個全為零的陣列。 |
| ones | 此函式將建立一個全為一的陣列。 |
| eye | 此函式用於建立單位矩陣。單位矩陣是對角線元素為 1,其餘元素為 0 的矩陣。 |
| rand | 此函式幫助你生成均勻分佈的隨機數矩陣。 |
| randn | 此函式幫助你生成正態分佈的隨機數矩陣。 |
| size | 此函式將矩陣的大小作為行向量返回。例如,如果矩陣的大小為 mxn,它將返回 [m,n]。 |
| reshape | 此函式用於重新整形給定的陣列。 |
| transpose | 這將給出給定矩陣的轉置。 |
| max | 這將返回陣列或行向量中的最大元素。 |
| min | 這將返回陣列或行向量中的最小元素。 |
| sum | 此函式將給出陣列元素的總和。 |
| mean | 此函式將給出給定陣列的平均值。 |
| diag | 此函式用於建立一個對角矩陣。 |
| unique | 這將返回給定陣列或矩陣中的唯一元素。 |
| sort | 此函式將對陣列元素進行排序。 |
函式名稱:zeros()
此函式用於建立全為零的矩陣或陣列。
語法
Z = zeros(n)
使用函式 zeros(n) 將返回一個 nxn 的全零矩陣。
示例
A = zeros(3)
執行後,你將得到以下輸出:
A =
0 0 0
0 0 0
0 0 0
你也可以指定所需的大小,例如 zeros(4,2),輸出將是:
ans =
0 0
0 0
0 0
0 0
函式名稱:ones()
你將得到一個全為一的陣列或矩陣。
語法
A = ones(n) A = ones(sz1…szN)
ones(n) 將建立一個 nxn 大小的矩陣。ones(sz1…sz1n) 將建立一個大小為 sz1xszn 的矩陣。
示例
A = ones(4)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
讓我們建立一個 3x2 維的全一矩陣,如下所示:
A = ones(3,2)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
1 1
1 1
1 1
函式名稱:eye()
使用上述函式,你將得到一個單位矩陣。
語法
I = eye(n) I = eye(n,m)
使用 eye(n) 你將得到一個 nxn 矩陣,使用 eye(n,m) 你將得到一個 nxm 大小的矩陣。
示例
I = eye(4) I = eye(2, 3)
當你在 matlab 命令視窗中檢查輸出時,輸出為:
I =
Diagonal Matrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
I =
Diagonal Matrix
1 0 0
0 1 0
函式名稱:rand()
使用上述函式生成具有隨機數的矩陣。
語法
rand(n) rand(sz1…szn)
你可以建立一個大小為 n 或 sz1xszn 的隨機數矩陣。
示例
A = rand(4) A = rand(5,3)
當你在 matlab 命令視窗中執行它們時,輸出為:
A =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
A =
0.4218 0.0357 0.7431
0.9157 0.8491 0.3922
0.7922 0.9340 0.6555
0.9595 0.6787 0.1712
0.6557 0.7577 0.7060
函式名稱:randn()
使用上述函式生成正態分佈的隨機數矩陣。
語法
randn(n) randn(sz1…szn)
你可以建立一個大小為 n 或 sz1xszn 的隨機數矩陣。
示例
A = randn(4) A = randn(5,3)
當你在 matlab 命令視窗中執行它們時,輸出為:
A =
-1.1471 1.4384 -1.7115 0.3129
-1.0689 0.3252 -0.1022 -0.8649
-0.8095 -0.7549 -0.2414 -0.0301
-2.9443 1.3703 0.3192 -0.1649
A =
0.6277 -1.2141 0.3714
1.0933 -1.1135 -0.2256
1.1093 -0.0068 1.1174
-0.8637 1.5326 -1.0891
0.0774 -0.7697 0.0326
函式名稱:size()
此方法返回陣列或矩陣的大小。
語法
size(A)
這裡 A 是一個矩陣,size() 函式將以行向量的形式返回 A 的維度。
示例
A = [1,2,3;4,5,6;7,8,9] size(A)
當你在 matlab 命令視窗中執行上述操作時,輸出為:
A =
1 2 3
4 5 6
7 8 9
ans =
3 3
函式名稱:reshape()
此函式將根據給定大小重新整形陣列。
語法
B = reshape(A,sz)
這裡 sz 是向量的尺寸,即 [3,2],矩陣 A 將被重新整形為給定的尺寸。
示例
A = 1:8 B = reshape(A,[4,2])
當你在 matlab 中檢查輸出時,輸出為:
A =
1 2 3 4 5 6 7 8
B =
1 5
2 6
3 7
4 8
函式名稱:transpose()
此函式將返回給定矩陣或向量的轉置。
轉置後,行和列將互換。
語法
B = transpose(A)
示例
A = magic(3) B = transpose(A)
上述程式碼的輸出為:
A =
8 1 6
3 5 7
4 9 2
B =
8 3 4
1 5 9
6 7 2
函式名稱:max()
這將給出陣列的最大元素,如下所示。
如果給定的輸入是一個行向量,則給出行向量中的最大元素。
如果給定的輸入是一個矩陣,則給出具有最大元素的行向量。
語法
B = max(A)
這裡 A 是一個數組、矩陣或行向量。
示例 1
A = [23, 84, 36, 1, 20] B = max(A)
當你在 matlab 命令視窗中執行時,輸出為:
A =
23 84 36 1 20
B = 84
現在讓我們使用一個矩陣並使用 max() 查詢最大元素。
示例 2
A = [56, 23, 90; 101, 45, 22;78, 11,90] B = max(A)
當你在 matlab 命令視窗中執行上述操作時,輸出為:
A =
56 23 90
101 45 22
78 11 90
B =
101 45 90
函式名稱:min()
這將給出陣列的最小元素,如下所示。
如果給定的輸入是一個行向量,則給出行向量中的最小元素。
如果給定的輸入是一個矩陣,則給出具有最小元素的行向量。
語法
B = min(A)
這裡 A 是一個數組、矩陣或行向量。
示例 1
A = [23, 84, 36, 1, 20] B = min(A)
當你在 matlab 命令視窗中執行時,輸出為:
A =
23 84 36 1 20
B = 1
現在讓我們使用一個矩陣並使用 min() 查詢最小元素。
示例 2
A = [56, 23, 90; 101, 45, 22;78, 11,90] B = min(A)
當你在 matlab 命令視窗中執行上述操作時,輸出為:
A =
56 23 90
101 45 22
78 11 90
B =
56 11 22
函式名稱:sum()
此方法將返回行向量或矩陣的元素總和。
如果是行向量,它將返回行向量中所有元素的總和。
如果是矩陣,它將對所有列求和並返回行向量。
語法
S = sum(A)
這裡 A 是一個數組、矩陣或行向量。
示例 1
S = [2, 3, 80, 90, 12] sum(S)
執行後,輸出為:
S = 2 3 80 90 12 ans = 187
示例 2
現在讓我們使用如下所示的矩陣並計算其總和。
A = [1, 2,3;4,5,6;7,8,9] S = sum(A)
執行後,輸出為:
A =
1 2 3
4 5 6
7 8 9
S =
12 15 18
函式名稱:mean()
此函式將給出給定陣列的平均值。
語法
M = mean(A)
如果給定的輸入是一個行向量,則 mean(A) 將給出元素的平均值。
如果給定的輸入是一個矩陣,則 mean(A) 將返回一個行向量,該向量包含每一列的平均值。
示例 1
A = [23, 90, 33, 78, 11, 56] M = mean(A)
執行後,輸出將是:
A =
23 90 33 78 11 56
M = 48.5000
示例 2
A = [51, 34 , 33; 12, 90, 32; 8, 13, 67] M = mean(A)
在上例中,A 是一個 3x3 矩陣。現在,當你求 mean(A) 時,它會計算每一列的平均值並返回一個行向量。
在 Matlab 命令視窗中執行後的輸出為:
A =
51 34 33
12 90 32
8 13 67
M =
23.6667 45.6667 44.0000
函式名稱:diag()
此方法使用給定向量行元素在主對角線上建立一個對角矩陣。
語法
D = diag(v)
這裡 v 是一個行向量。
示例
v = [5 2 -1 -2 -5] D = diag(v)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
v =
5 2 -1 -2 -5
D =
Diagonal Matrix
5 0 0 0 0
0 2 0 0 0
0 0 -1 0 0
0 0 0 -2 0
0 0 0 0 -5
函式名稱:unique()
此方法將返回陣列中唯一的值。
語法
C = unique(A) C = unique(A, setOrder)
你將得到一個排序後的陣列 C,其中不會重複相同的值。
第二個語法需要你傳遞 setOrder,其值可以是:sorted 或 stable。預設情況下,setOrder 為 sorted。如果你希望最終輸出不排序,可以將其指定為 'stable'。
示例 1
A = [10, 8, 2, 4,8, 3] C = unique(A)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
10 8 2 4 8 3
C =
2 3 4 8 10
你會看到值 8 在陣列 A 中出現了兩次。當你檢視 unique(A) 的輸出時,重複的值將被刪除,最終陣列將按排序形式顯示。
示例 2
我們將使用上面用過的相同示例,並將 setOrder 設定為 stable。
A = [10, 8, 2, 4,8, 3] C = unique(A, 'stable')
執行相同的操作後,輸出為:
A =
10 8 2 4 8 3
C =
10 8 2 4 3
示例 3
如果你給出一個包含重複值的矩陣,unique() 方法將返回包含唯一值的列向量,如下所示。
A = [1,2,4; 4,2,8; 8,1,5] C = unique(A)
在 Matlab 命令視窗中執行上述操作後的輸出為:
A =
1 2 4
4 2 8
8 1 5
C =
1
2
4
5
8
結果 C 是一個單列向量,包含來自 A 的唯一值。
函式名稱:sort()
此方法將對陣列元素進行排序。
語法
B = sort(A) B = sort(A, direction)
語法 sort(A) 將按升序對陣列元素進行排序。
第二個語法 sort(A, direction),這裡 direction 的值可以是 **ascend** 和 **descend**。預設情況下為升序。
如果給定的輸入 A 是一個向量,則 sort(A) 將對向量中的元素進行排序。
如果給定的輸入 A 是一個矩陣,則 sort(A) 將對矩陣的每一列進行排序。
示例 1
A = [6 -1 -7 2 3 8 -10 11 2] B = sort(A)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
6 -1 -7 2 3 8 -10 11 2
B =
-10 -7 -1 2 2 3 6 8 11
示例 2
在這個例子中,讓我們取一個矩陣並對其使用 sort 函式。
A = [ -1, 7, 10; 3, -9, 2; 8, -2, -3] B = sort(A)
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
-1 7 10
3 -9 2
8 -2 -3
B =
-1 -9 -3
3 -2 2
8 7 10
在上例中,讓我們將 **direction** 設定為 **descend**。
A = [ -1, 7, 10; 3, -9, 2; 8, -2, -3] B = sort(A, 'descend')
當你在 matlab 命令視窗中執行相同的操作時,輸出為:
A =
-1 7 10
3 -9 2
8 -2 -3
B =
8 7 10
3 -2 2
-1 -9 -3