Matlab中的向量和数组(超详细)
Matlab中的向量和數組(超詳細)
文章目錄
- Matlab中的向量和數組(超詳細)
- Matlab中的向量
- 介紹
- 創建向量
- 向量的大小
- 索引向量
- 數值索引
- 邏輯索引
- 縮短向量
- 向量運算
- 算術運算
- 邏輯運算
- sum()、min()、max()、round()、ceil()、floor()、fix()
- 切片
- Maltab中的數組
- 數組的屬性
- 創建數組
- 訪問數組元素
- 數組運算
- 數組的算術運算
- 數組的邏輯運算
- sum()、max()、min()、round()、ceil()、floor()、fix()
- 連接數組
- 切片數組
- 重塑數組
Matlab中的向量
介紹
matlab中的向量是只有一行元素的數組,向量中的單個項通常稱為元素。Matlab中的向量索引值從1開始,而不是從0開始。
創建向量
- 直接輸入值
例如:
這里既可以用逗號來分割,也可以用空格
- 使用冒號輸入某一數字范圍的值,例如,C=1:4:20,其中第一個數字是起始值,第二個數字是步長,第三個數字是終止值。如果步長是1的話,可以不寫步長
例如:
- 使用函數linspace(?\cdots?):用于創建兩個限定值之間固定數量的值。
例如:
其中第一個數字是起始值,第二個數字是終止值,第三個數字是這個區間向量的個數
- 函數zeros(1,n):創建全零的向量
例如:
其中第一個數字是數組的行數,第二個數字是數組的列數。
- 函數ones(1,n):創建全1的向量
例如:
其中第一個數字是數組的行數,第二個數字是數組的列數。
- rand(1,n):創建0~1之間的隨機數的向量
例如:
向量的大小
Matlab提供兩個函數來確定一般數組和特殊向量的大小:size()和length().
- size():返回向量中的行的數量和列的數量。由于向量是一維的,所以第一個每次輸出都是一
- length():返回數組行列大小的最大值,對于向量,表示其長度
例如:
索引向量
通過在括號內輸入零個(全部輸出)或多個元素的索引值,可以單個或分組訪問向量中的元素??梢酝ㄟ^以下兩種方式中的任意一種訪問向量中的元素: 使用數值向量和邏輯向量。
數值索引
通過在括號內輸入零個或多個元素的索引值,可以單個或分組訪問向量中的元素。
例子:
另外,索引環境中的關鍵字end表示向量中的最后一個元素的索引
**注意:**在Matlab中在賦值操作中輸入的索引超過當前的邊界,Matlab會自動擴列,空位用零補齊,比如,我們在這個例子中輸入A(10)看看會有什么結果。
邏輯索引
我們來看一個例子:
創建了一個condition邏輯數組,通過數組來索引這個向量
縮短向量
有些時候,我們需要刪除向量中的元素??梢杂盟饕龑⑿枰獎h除的部分賦值為[ ]
但是,縮短向量不是做正確的方法,因為可能會導致一些邏輯問題,在可行的情況下,應該使用索引來復制需要保存的元素。
向量運算
算術運算
- 向量中的加減法運算
可以看見是對向量中每個元素進行加法運算,減法也一樣
- 向量中的乘法、除法.
例子
- 向量中的指數
.?.*.? 和 ?*?的區別:
對于矩陣和數字之間的運算,.?.*.? 和 ?*?沒什么區別,但是對于矩陣和矩陣之間,.?.*.? 表示矩陣對應元素相乘,而?*?表示矩陣乘法。
邏輯運算
向量的邏輯運算會產生的邏輯結果向量。
例如:
邏輯與(&)和邏輯或(|):
例子:
find():可以用find()函數查找值為true的元素在一個邏輯向量中的索引值
例如:
sum()、min()、max()、round()、ceil()、floor()、fix()
sum():向量中元素的總和;
min()、max():返回向量中元素最小最大值;
round()、ceil()、floor()、fix():常規取整、向上取整、向下取整、向零取整
切片
切片操作能將一個向量中的指定元素復制到另一個向量的不同位置。
看一個簡單的例子:
Maltab中的數組
向量是聚集相似數據集的最簡單的方法。而數組是向量的拓展,使其包括多個維度的數組,其中二維數組是每行具有相同的列,并且每列具有相同的行。
數組的屬性
- size():返回各個維度的大小
- length():返回數組的最大維度
創建數組
-
直接輸入值
和向量一樣,在數組中直接輸入值時,可以使用分號(;)或以新的一行來表示換行
-
zeros(m,n):創建m行n列的全0的數組
-
rand(m,n):創建m行n列的0~1隨機數的數組
-
randn(m,n):創建m行n列的正態分布隨機數的數組
-
diag():返回對角線上的元素
訪問數組元素
數組的索引是從列開始,從上往下依次為1,2,3 , ?\cdots?
例如:
數組運算
數組的算術運算
- 數組之間的加減
例子:
- 數組之間的乘法
數組和數字的乘法:對應元素相乘
例子:
數組與數組的乘法(?*?):一定要符合矩陣可乘。
例子
數組與數組之間的.?.*.?:對應元素相乘:
例子:
數組的邏輯運算
如果兩個數組具有相同的大小,或者其中一個數組是標量(及長度為1的向量),邏輯運算可以同時執行在這兩個數組的各個元素上。
例如
sum()、max()、min()、round()、ceil()、floor()、fix()
-
sum():返回一個行向量,包含該數組每列的總和
-
max()和min():分別返回一個行向量,每列的最大值和每列的最小值
連接數組
看一個簡單的例子
切片數組
對一個數組進行切片:A(對行索引,對列索引)
例子:
重塑數組
有些時候我們希望將某一維度的數組變形為另一種維度的需求,函數reshape(?\cdots?)能完成這種邊形。
例子:
總結
以上是生活随笔為你收集整理的Matlab中的向量和数组(超详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1、字节流详解
- 下一篇: MATLAB 数组合并