跳轉至內容

MATLAB程式設計/向量和矩陣/向量運算

來自Wikibooks,開放世界中的開放書籍

向量運算

[編輯 | 編輯原始碼]

建立向量

[編輯 | 編輯原始碼]

如果向量的元素遵循順序加法,我們可以使用括號和以下內容


例如,如果我們想要一個從數字1開始,到數字19結束,增量值為3的向量,我們可以輸入以下命令

>> V = (1:3:19)

V =
     1     4     7    10    13    16    19

訪問向量

[編輯 | 編輯原始碼]

要訪問向量中的值,您只需要指定向量和陣列索引,從 1 到 n。

使用上面向量 V 的示例,我們訪問向量 V 中的第三個元素,我們輸入以下命令

>> V(3)

ans =
     7

我們可以透過輸入起始索引和結束索引來訪問多個元素。例如,我們需要訪問第 3 個元素到第 6 個元素,我們輸入如下

>> V(3:6)

ans =
     7    10    13    16

查詢長度

[編輯 | 編輯原始碼]

我們還可以使用length函式來了解向量的長度,例如我們可以知道 V 的長度。向量 V 中有 7 個元素,因此答案應該是 7

>> length(V)

ans =
     7

向量求和

[編輯 | 編輯原始碼]

我們可以使用sum函式查詢向量的和,它透過將向量中的所有數字加在一起得到這個值:例如,1+4+7+10+13+16+19

>> sum(V)

ans =
    70

查詢最大值和最小值

[編輯 | 編輯原始碼]

我們可以分別知道向量中哪個是最大數和最小數,我們可以使用minmax函式來實現。

>> min(V)

ans =
     1

>> max(V)

ans =
     19

查詢均值

[編輯 | 編輯原始碼]

mean函式用於查詢向量中的中心/中間值。

>> mean(V)

ans =
    10

查詢平均值

[編輯 | 編輯原始碼]

average函式用於查詢向量的平均值。

>> average(V)

ans =
    10

>> % Another way of finding average
>> sum(V)/length(V)

ans =
    10

查詢標準差

[編輯 | 編輯原始碼]

要查詢標準差,需要使用std函式。
標準差是衡量一組值的變異或離散程度的指標。標準差低表示值傾向於接近該組的均值(也稱為期望值),而標準差高表示值分佈在更寬的範圍內。

>> std(V)

ans =
    6.4807

隨機排列

[編輯 | 編輯原始碼]

有兩種不同的方法可以為向量建立隨機排列

a. randperm(N)返回一個包含整數 1:N 的隨機排列的向量。

>> P=randperm(7)

ans =
     1     6     2     3     4     5     7

b. randperm(N,K)返回一個行向量,其中包含從 1:N 中隨機選擇的 K 個唯一整數。

>>>> P=randperm(7,5)

P =
     5     1     6     2     3

排序向量

[編輯 | 編輯原始碼]

您可能希望對向量進行排序,您可以在 MATLAB 中執行此操作。

如果要以降序方式對向量進行排序,請使用以下示例。注意,我們使用上面隨機排列示例 b。

>> % using argument 'descend' to sort from big to small number
>> S=sort(P,'descend')

S =
     6     5     3     2     1
>> % using argument 'asscend' to sort from  small to big number
>> S=sort(P,'ascend')

S =
     1     2     3     5     6

計算點積

[編輯 | 編輯原始碼]

要查詢點積,您可以使用dot函式。

注意:兩個向量必須具有相同的長度。答案通常以標量的形式出現。

向量的點積計算如下




>> % creating row vector A and B
>> A = [3 ,7 , 2]

A =
     3     7     2

>> B = [1,2,5]

B =
     1     2     5

>> dot(A,B)

ans =
    27

計算叉積

[編輯 | 編輯原始碼]

要查詢叉積,可以使用cross函式。注意:兩個向量必須具有相同的長度3。答案通常以3維向量的形式出現。

待辦事項:查詢可以很好地說明叉積的圖片。

>> cross(A,B)

ans =
    31   -13    -1

計算向量中常用的值

[編輯 | 編輯原始碼]

要查詢向量中重複次數最多的值,可以使用mode函式。

>>%create vectors with random numbers
>> A=randi(50,1,10)

A =
    18    42    30    28    46    15    38    38    20    29

>> mode(A)

ans =
    38
>>%38 appear twice in that vector
華夏公益教科書