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
廣告
© . All rights reserved.