3 進行數組運算的常用函數
在MATLAB中有一些常用函數,這些函數在日常的編程計算過程中會經常遇到,一般是基本的數學概念在MATLAB中的函數表達方式。這些函數在MATLAB中可以同時作用於整個矩陣或者數組,應用起來非常方便,不需要再另寫循環程序來對各元素分別進行計算。掌握這些函數是進一步學習的基礎。MATLAB人性化的地方在於其自帶函數基本是按照相對應的英文名稱縮寫而來,所以便於記憶。
3.1 函數數組運算規則的定義
對於(m´n)的數組,函數的數組運算規則是指:
也就是說函數的數組運算是指將函數作用於矩陣中的每一個元素,並將最後的結果儲存為與原矩陣行列數相同的矩陣。
3.2 進行數組運算的常用函數
本小節列出進行數組運算的常用函數。常用基本數學函數見表2-2,常用三角函數見表2-3,常用適用於向量的函數見表2-4。
表2-2 MATLAB常用的基本數學函數
函 數
說 明
函 數
說 明
abs(x)
純量的絕對值或向量的長度
rat(x)
將實數x化為分數表示
angle(z)
複數z的相角
sign(x)
符號函數 當x<0時,sign(x)=-1; 當x=0時,sign(x)=0; 當x>0時,sign(x)=1
sqrt(x)
開平方
rem(x,y)
求x除以y的餘數
real(z)
複數z的實部
gcd(x,y)
整數x和y的最大公因數
imag(z)
複數z的虛部
lcm(x,y)
整數x和y的最小公倍數
conj(z)
複數z的共軛複數
exp(x)
自然指數
round(x)
四捨五入至最近整數
pow2(x)
2的指數
fix(x)
無論正負,向0的方向取最近整數
log(x)
以e為底的對數,即自然對數
floor(x)
捨去法取最近整數
log2(x)
以2為底的對數
ceil(x)
進一法取最近整數
log10(x)
以10為底的對數
表2-3 MATLAB常用的三角函數
函 數
說 明
函 數
說 明
sin(x)
正弦函數
sinh(x)
超越正弦函數
cos(x)
餘弦函數
cosh(x)
超越餘弦函數
tan(x)
正切函數
tanh(x)
超越正切函數
asin(x)
反正弦函數
asinh(x)
反超越正弦函數
acos(x)
反餘弦函數
acosh(x)
反超越餘弦函數
atan(x)
反正切函數
atanh(x)
反超越正切函數
atan2(x,y)
四象限的反正切函數
表2-4 適用於向量的常用函數
函 數
說 明
函 數
說 明
min(x)
向量x的元素的最小值
norm(x)
向量x的歐氏長度,也就是範數
max(x)
向量x的元素的最大值
sum(x)
向量x的元素總和
mean(x)
向量x的元素的平均值
prod(x)
向量x的元素總乘積
median(x)
向量x的元素的中位數
cumsum(x)
向量x的累計元素總和
std(x)
向量x的元素的標準差
cumprod(x)
向量x的累計元素總乘積
diff(x)
向量x的相鄰元素的差
dot(x, y)
向量x和y的內積
sort(x)
對向量x的元素進行排序
cross(x, y)
向量x和y的外積
【例2-9】 數組運算示例。
>> a=[1 2 4 9;16 25 36 49]
a =
1 2 4 9
16 25 36 49
>> b=sqrt(a) % 應用函數對矩陣中的每一個元素分別開方
b =
1.0000 1.4142 2.0000 3.0000
4.0000 5.0000 6.0000 7.0000
4. 查詢矩陣信息
在矩陣的使用過程中,經常需要查詢某個矩陣的一些基本信息,比如行數、列數、總元素個數、各元素的數據類型等,這就需要我們掌握矩陣信息查詢函數。
4.1 矩陣的形狀信息
表2-5中的函數,可以用來查詢一個矩陣形狀的信息。
表2-5 矩陣形狀信息
函數名稱
函數功能
函數名稱
函數功能
length
返回矩陣最長的一維的長度
numel
返回矩陣的元素個數
ndims
返回矩陣的維數
size
返回矩陣各維的長度
下面舉例說明如何使用這些函數。
【例2-10】 查詢矩陣形狀信息示例。
>> rand('state', 0); % 設置隨機種子,便於讀者驗證
>> A = rand(5) * 10 % 生成5´5的隨機矩陣
A =
9.5013 7.6210 6.1543 4.0571 0.5789
2.3114 4.5647 7.9194 9.3547 3.5287
6.0684 0.1850 9.2181 9.1690 8.1317
4.8598 8.2141 7.3821 4.1027 0.0986
8.9130 4.4470 1.7627 8.9365 1.3889
>> A(4:5, :) = [] % 刪除第4行和第5行
A =
9.5013 7.6210 6.1543 4.0571 0.5789
2.3114 4.5647 7.9194 9.3547 3.5287
6.0684 0.1850 9.2181 9.1690 8.1317
>> size(A)
ans =
3 5
>>a= length(A)
a =
5
>> b=sum(A(:))/numel(A) % 使用Sum和numel函數計算矩陣A的平均值
b =
5.8909
>> c=mean(mean(A)) % 使用mean函數驗證矩陣A的平均值
c =
5.5388
4.2 矩陣的數據類型
與其他程式語言類似,MATLAB提供有多種數據類型,相關內容將在第3章中介紹。本小節介紹用來查詢數據類型的函數。
表2-6中的函數,可以用來查詢一個矩陣中所用的數據類型。
表2-6 判斷數據類型函數
函數名稱
函數功能
函數名稱
函數功能
isa
查詢輸入矩陣是否是給定類型
isinteger
查詢輸入矩陣是否是整數數組
iscell
查詢輸入矩陣是否是cell數組
islogical
查詢輸入矩陣是否是邏輯數組
iscellstr
查詢輸入矩陣是否是由字符串構成的cell數組
isnumeric
查詢輸入矩陣是否是數值數組
ischar
查詢輸入矩陣是否是字符串
isreal
查詢輸入矩陣是否是實數
isfloat
查詢輸入矩陣是否是浮點數組
isstruct
查詢輸入矩陣是否是structure數組
4.3 矩陣的數據結構
表2-7中的函數,可以用來查詢一個矩陣中所用的數據結構。
表2-7 數據的結構查詢函數
函數名稱
函數功能
函數名稱
函數功能
isempty
查詢輸入矩陣是否為空
issparse
查詢輸入矩陣是否是稀疏矩陣
isscalar
查詢輸入矩陣是否是1´1標量
isvector
查詢輸入矩陣是否是向量