矩陣和數(shù)組
MATLAB是“矩陣實(shí)驗(yàn)室”的縮寫。雖然其他編程語言主要一次處理一個(gè)數(shù)字,但MATLAB?主要設(shè)計(jì)用于整個(gè)矩陣和數(shù)組。
所有 MATLAB 變量都是多維數(shù)組,無論數(shù)據(jù)類型如何。矩陣是通常用于線性代數(shù)的二維數(shù)組。
一、陣列創(chuàng)建
若要在一行中創(chuàng)建具有四個(gè)元素的數(shù)組,請用逗號或空格分隔這些元素。
a = [1 2 3 4]
a = 1×4
?????1 ????2 ????3 ????4
這種類型的數(shù)組是行向量。
若要創(chuàng)建具有多行的矩陣,請用分號分隔這些行。
a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3
?????1 ????3 ????5
?????2 ????4 ????6
?????7 ????8 ???10
如下
且發(fā)現(xiàn)如果不輸入不會自動產(chǎn)生0,會發(fā)生錯誤
特別的,創(chuàng)建矩陣的另一種方法是使用函數(shù),例如 、 、 或 。例如,創(chuàng)建一個(gè) 5 x 1 的零列向量。
z = zeros(5,1)
z = 5×1
?????0
?????0
?????0
?????0
?????0
可知,此函數(shù)的作用為創(chuàng)建任意的小的0矩陣
二、矩陣和數(shù)組操作
MATLAB 允許您使用單個(gè)算術(shù)運(yùn)算符或函數(shù)處理矩陣中的所有值。
a + 10
ans = 3×3
????11 ???13 ???15
????12 ???14 ???16
????17 ???18 ???20
sin(a)
ans = 3×3
????0.8415 ???0.1411 ??-0.9589
????0.9093 ??-0.7568 ??-0.2794
0.6570 ???0.9894 ??-0.5440
要轉(zhuǎn)置矩陣,請使用單引號 :'
a'
ans = 3×3
?????1 ????2 ????7
?????3 ????4 ????8
?????5 ????6 ???10
您可以使用運(yùn)算符執(zhí)行標(biāo)準(zhǔn)矩陣乘法,該乘法計(jì)算行和列之間的內(nèi)部乘積。例如,確認(rèn)矩陣乘以其逆矩陣返回單位矩陣:*
矩陣整體的乘法
p = a*inv(a)//矩陣乘逆矩陣得到的單位矩陣
p = 3×3
????1.0000 ???0.0000 ??-0.0000
?????????0 ???1.0000 ??-0.0000
?????????0 ???0.0000 ???1.0000
請注意,這不是整數(shù)值的矩陣。MATLAB 將數(shù)字存儲為浮點(diǎn)值,并且算術(shù)運(yùn)算對實(shí)際值與其浮點(diǎn)表示之間的微小差異很敏感。您可以使用以下命令顯示更多十進(jìn)制數(shù)字:format
format long
p = a*inv(a)
p = 3×3
???0.999999999999996 ??0.000000000000007 ?-0.000000000000002
???????????????????0 ??1.000000000000000 ?-0.000000000000003
???????????????????0 ??0.000000000000014 ??0.999999999999995
使用
format short
format僅影響數(shù)字的顯示,而不影響 MATLAB 計(jì)算或保存數(shù)字的方式。
如下
要執(zhí)行按元素乘法而不是矩陣乘法,請使用運(yùn)算符:.*
p = a.*a
p = 3×3
?????1 ????9 ???25
?????4 ???16 ???36
????49 ???64 ??100
用于乘法、除法和冪次冪的矩陣運(yùn)算符都有一個(gè)相應(yīng)的數(shù)組運(yùn)算符,該運(yùn)算符按元素操作。例如,將 的每個(gè)元素提高到第三次冪:a
a.^3
ans = 3×3
???????????1 ?????????27 ????????125
???????????8 ?????????64 ????????216
?????????343 ????????512 ???????1000
如下
四、串聯(lián)(合并矩陣)
串聯(lián)是連接數(shù)組以生成較大數(shù)組的過程。實(shí)際上,您是通過連接其各個(gè)元素來創(chuàng)建第一個(gè)數(shù)組的。方括號對是串聯(lián)運(yùn)算符。[]
A = [a,a]
A = 3×6
?????1 ????3 ????5 ????1 ????3 ????5
?????2 ????4 ????6 ????2 ????4 ????6
?????7 ????8 ???10 ????7 ????8 ???10
使用逗號將數(shù)組彼此相鄰連接起來稱為水平串聯(lián)。每個(gè)數(shù)組必須具有相同的行數(shù)。同樣,當(dāng)數(shù)組具有相同數(shù)量的列時(shí),可以使用分號垂直連接。
A = [a; a]
A = 6×3
?????1 ????3 ????5
?????2 ????4 ????6
?????7 ????8 ???10
?????1 ????3 ????5
?????2 ????4 ????6
?????7 ????8 ???10
?
五、復(fù)數(shù)
復(fù)數(shù)有實(shí)部和虛部,其中虛部單位是 的平方根。-1
sqrt(-1)
ans = 0.0000 + 1.0000i
要表示復(fù)數(shù)的虛部,請使用i或j
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex
???3.0000 + 4.0000i ??4.0000 + 3.0000i
???0.0000 - 1.0000i ??0.0000 +10.0000i
事實(shí)證明逗號和分號都能分割行
六、數(shù)組索引
試試這個(gè)例子復(fù)制命令復(fù)制代碼
MATLAB? 中的每個(gè)變量都是一個(gè)可以容納許多數(shù)字的數(shù)組。如果要訪問數(shù)組的選定元素,請使用索引。
例如,考慮 4 x 4 矩陣:A
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4
?????1 ????2 ????3 ????4
?????5 ????6 ????7 ????8
?????9 ???10 ???11 ???12
????13 ???14 ???15 ???16
有兩種方法可以引用數(shù)組中的特定元素。最常見的方法是指定行和列下標(biāo),例如
A(4,2)
ans = 14
注:不太常見但有時(shí)有用的是使用單個(gè)下標(biāo),該下標(biāo)按順序遍歷每列:
A(8)//第四行為13?則第八行為14
ans = 14
使用單個(gè)下標(biāo)來引用數(shù)組中的特定元素稱為線性索引。
注意:如果嘗試引用賦值語句右側(cè)數(shù)組外部的元素,MATLAB 會引發(fā)錯誤。
test = A(4,5)
Index in position 2 exceeds array bounds (must not exceed 4).
但是,在賦值語句的左側(cè),可以指定當(dāng)前尺寸之外的元素。數(shù)組的大小會增加以容納新來者。
A(4,5) = 17//此時(shí)矩陣已經(jīng)創(chuàng)建,故不輸入可以自動顯示0
A = 4×5
?????1 ????2 ????3 ????4 ????0
?????5 ????6 ????7 ????8 ????0
?????9 ???10 ???11 ???12 ????0
????13 ???14 ???15 ???16 ???17
要引用數(shù)組的多個(gè)元素,請使用冒號運(yùn)算符,它允許您指定格式的范圍。例如,列出前三行和第二列中的元素:start:end
A(1:3,2) //一到三行的所有第二列元素
ans = 3×1
?????2
?????6
????10
冒號本身(不帶開始值或結(jié)束值)指定該維度中的所有元素。例如,選擇 以下行的第三行中的所有列:A
A(3,:)//僅僅第三行的所有列
ans = 1×5
?????9 ???10 ???11 ???12 ????0
冒號運(yùn)算符還允許您使用更通用的形式創(chuàng)建等間距的值向量。start:step:end
B = 0:10:100
B = 1×11
?????0 ???10 ???20 ???30 ???40 ???50 ???60 ???70 ???80 ???90 ??100
如果省略中間步驟,如中所示,MATLAB 將使用缺省步驟值 。start:end1
七、工作區(qū)變量
工作區(qū)包含您在 MATLAB 中創(chuàng)建的變量,或從數(shù)據(jù)文件或其他程序?qū)?MATLAB 的變量。例如,這些語句在工作區(qū)中創(chuàng)建變量。?AB
A = magic(4);
B = rand(3,5,2);
您可以使用 查看工作區(qū)的內(nèi)容。whos
whos
??Name ?????Size ????????????Bytes ?Class ????Attributes
??A ????????4x4 ???????????????128 ?double ?????????????
??B ????????3x5x2 ?????????????240 ?double ?????????????
這些變量還會顯示在桌面上的“工作區(qū)”窗格中。
工作區(qū)變量在退出 MATLAB 后不會保留。?保存您的數(shù)據(jù),以便以后與命令一起使用,save
save myfile.mat
“保存”會將當(dāng)前工作文件夾中的工作空間保留在擴(kuò)展名為 MAT 文件(稱為 MAT 文件)的壓縮文件中。.mat
若要從工作區(qū)中清除所有變量,請使用該命令。Clear
刪除單個(gè)變量只需要clear b
使用 將數(shù)據(jù)從 MAT 文件恢復(fù)到工作區(qū)。load
load myfile.mat
如圖,先清除工作區(qū)所有變量之后仍然可以從myfile文件中恢復(fù)文章來源:http://www.zghlxwxcb.cn/news/detail-803547.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-803547.html
到了這里,關(guān)于Matlab基礎(chǔ)語法學(xué)習(xí)(2)矩陣和數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!