Matlab学习笔记1—MATLAB基础知识
1.1 MATLAB系統(tǒng)環(huán)境
1.MATLAB操作界面的組成
(1)MATLAB主窗口
(2)命令行窗口:命令行窗口用于輸入命令并顯示命令的執(zhí)行結(jié)果。
(3)當(dāng)前文件夾窗口
如何設(shè)置當(dāng)前文件夾呢?
(1)在當(dāng)前文件夾工具欄或當(dāng)前文件夾窗口中選擇某文件夾為當(dāng)前文件夾
(2)使用cd命令
(4)工作區(qū)窗口
2.MATLAB的搜索路徑
(1)用path命令設(shè)置文件搜索路徑。例如:
>> path(path,'e:work')
(2)用對話框設(shè)置文件搜索路徑。
3,兩個問題
(1)如果在當(dāng)前文件夾和搜索路徑文件夾下建立了一個同名的M 文件,那么在命令行窗口輸入文件名時,執(zhí)行哪個文件?
(2)如果用戶建立的文件既沒有保存在當(dāng)前文件夾下,也沒有 保存在文件搜索路徑中,那么在命令行窗口輸入文件名時, 會出現(xiàn)什么信息?
第一個問題根據(jù)MATLAB的搜索路徑,程序文件的搜索順 序是首先在當(dāng)前文件夾中搜索,然后再在文件搜索路徑 中的文件夾中搜索,所以執(zhí)行的是當(dāng)前文件夾下的M文件。 第二個問題,同樣根據(jù)MATLAB的搜索路徑,如果用戶建 立的文件既沒有保存在當(dāng)前文件夾下,也沒有保存在文 件搜索路徑中,那么MATLAB就找不到這個文件,系統(tǒng)會 給出錯誤提示信息。
1.2 MATLAB數(shù)值數(shù)據(jù)
1.?dāng)?shù)值數(shù)據(jù)類型的分類
(1)整型
無符號整數(shù):無符號8位整數(shù)、無符號16位整數(shù)、無符號32位整數(shù)、無符號64位整數(shù)。
無符號8位整數(shù)數(shù)據(jù)范圍:00000000~11111111(0~28-1)。
帶符號整數(shù):帶符號8位整數(shù)、帶符號16位整數(shù)、帶符號32位整數(shù)、帶符號64位整數(shù)。
帶符號8位整數(shù)數(shù)據(jù)范圍:10000000~01111111(-27~27-1)。
int8():將無符號位整型轉(zhuǎn)成帶符號位整形。
uint8():將有符號位整型轉(zhuǎn)成無符號位整形。
(2)浮點(diǎn)型
single函數(shù):將其他類型的數(shù)據(jù)轉(zhuǎn)換為單精度型。
double函數(shù):將其他類型的數(shù)據(jù)轉(zhuǎn)換為雙精度型。
class函數(shù):輸出數(shù)據(jù)類型
(3)復(fù)型
復(fù)型數(shù)據(jù)包括實(shí)部和虛部兩個部分,實(shí)部和虛部默認(rèn)為雙精度型,虛數(shù) 單位用i或j來表示。
real函數(shù):求復(fù)數(shù)的實(shí)部。
imag函數(shù):求復(fù)數(shù)的虛部。
2.?dāng)?shù)值數(shù)據(jù)的輸出格式
format命令的格式: format 格式符。
3.常用數(shù)學(xué)函數(shù)
(1)函數(shù)的調(diào)用格式為:函數(shù)名(函數(shù)自變量的值)
(2)常用函數(shù)的應(yīng)用
① 三角函數(shù)有以弧度為單位的函數(shù)和以角度為單位的函數(shù),如果是以 角度為單位的函數(shù)就在函數(shù)名后面加“d”,以示區(qū)別。
② abs函數(shù)可以求實(shí)數(shù)的絕對值、復(fù)數(shù)的模、字符串的ASCII碼值。
③用于取整的函數(shù)有fix、floor、ceil、round。
④函數(shù)應(yīng)用舉例。
(1)分別求一個三位正整數(shù)的個位數(shù)字、十位數(shù)字和百位數(shù)字。
(2)求[1,100]區(qū)間的所有素數(shù)。
1.3 變量及其操作
1.變量與賦值語句
在MATLAB中,變量名是以字母開頭,后接字母、數(shù)字或下畫線的字符序列, 最多63個字符。
變量名區(qū)分字母的大小寫。
標(biāo)準(zhǔn)函數(shù)名以及命令名必須用小寫字母。
2.預(yù)定義變量
預(yù)定義變量是在MATLAB工作空間中駐留,由系統(tǒng)本身定義的變量。
(1)ans是默認(rèn)賦值變量
(2)i和j代表虛數(shù)單位
(3)pi代表圓周率
(4)NaN代表非數(shù)
3.變量的管理
(1)內(nèi)存變量的刪除與修改
who命令與whos命令
(2)內(nèi)存變量文件
用于保存MATLAB工作區(qū)變量的文件叫做內(nèi)存變量文件,其擴(kuò)展名為.mat,也叫MAT文件。
save命令:創(chuàng)建內(nèi)存變量文件。
load命令:裝入內(nèi)存變量文件。
1.4 MATLAB矩陣的表示
1.矩陣的建立
(1)利用直接輸入法建立矩陣:將矩陣的元素用中括號括起 來,按矩陣行的順序輸入各元素,同一行的各元素之間用逗 號或空格分隔,不同行的元素之間用分號分隔。
(2)利用已建好的矩陣建立更大的矩陣: 一個大矩陣可以由已經(jīng)建立好的小矩陣拼接而成。
(3)可以用實(shí)部矩陣和虛部矩陣構(gòu)成復(fù)數(shù)矩陣
2.冒號表達(dá)式
3.結(jié)構(gòu)矩陣和單元矩陣
(1)結(jié)構(gòu)矩陣
由結(jié)構(gòu)數(shù)據(jù)構(gòu)成的矩陣就是結(jié)構(gòu)矩陣,結(jié)構(gòu)矩陣?yán)锏拿總€元素 就是結(jié)構(gòu)數(shù)據(jù)類型。
格式為: 結(jié)構(gòu)矩陣元素.成員名=表達(dá)式
(2)單元矩陣
建立單元矩陣和一般矩陣相似,直接輸入就可以了,只是單元矩陣元 素用大括號括起來。
1.5 矩陣元素的引用
1.矩陣元素的引用方式
(1)通過下標(biāo)來引用矩陣的元素
A(3,2)表示A矩陣第3行第2列的元素。
注意:如果給出的行下標(biāo)或列下標(biāo)大于原來矩陣的行數(shù)和列數(shù), 那么MATLAB將自動擴(kuò)展原來的矩陣,并將擴(kuò)展后沒有賦值的矩陣 元素置為0。
(2)通過序號來引用
在MATLAB中,矩陣元素按列存儲,即首先存儲矩陣的第一列元素,然后存儲第二列元素,…,一直到矩陣的最后一列元素。
矩陣元素的序號就是矩陣元素在內(nèi)存中的排列順序。
序號與下標(biāo)是一一對應(yīng)的,以m×n矩陣A為例,矩陣元素A(i,j)的序 號為(j-1)×m+i
sub2ind函數(shù):將矩陣中指定元素的行、列下標(biāo)轉(zhuǎn)換成存儲的序號。調(diào)用格式為:
2.利用冒號表達(dá)式獲得子矩陣
子矩陣是指由矩陣中的一部分元素構(gòu)成的矩陣。
A(i,:) 第i行的全部元素
A(:,j)第j列的全部元素
A(i:i+m,k:k+m)第i~i+m行內(nèi)且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素
end運(yùn)算符:表示某一維的末尾元素下標(biāo)。
3.利用空矩陣刪除矩陣的元素
空矩陣是指沒有任何元素的矩陣。
4.改變矩陣的形狀
reshape(A,m,n):在矩陣總元素保持不變的前提下,將矩陣A重 新排成m×n的二維矩陣。
注意:reshape函數(shù)只是改變原矩陣的行數(shù)和列數(shù),但并不改 變原矩陣元素個數(shù)及其存儲順序。
A(:) :將矩陣A的每一列元素堆疊起來,成為一個列向量。
A(:)等價于reshape(A,6,1)。
1.6 MATLAB基本運(yùn)算
1.算術(shù)運(yùn)算
(1)基本算術(shù)運(yùn)算
基本算術(shù)運(yùn)算符:+(加)、-(減)、*(乘)、/(右除)、(左除)、^(乘方)。
注意:MATLAB的算術(shù)運(yùn)算是在矩陣意義下進(jìn)行的。
單個數(shù)據(jù)的算術(shù)運(yùn)算只是矩陣運(yùn)算的一種特例。
加減運(yùn)算
若兩矩陣同型,則運(yùn)算時兩矩陣的相應(yīng)元素相加減。
若兩矩陣不同型,則MATLAB將給出錯誤信息。
一個標(biāo)量也可以和矩陣進(jìn)行加減運(yùn)算,這時把標(biāo)量和矩陣的每一個元素進(jìn)行加減運(yùn)算。
乘法運(yùn)算
矩陣A和B進(jìn)行乘法運(yùn)算,要求A的列數(shù)與B的行數(shù)相等,此時則稱A、B矩陣是可乘的,或稱A和B兩矩陣維數(shù)和大小相容。
如果兩者的維數(shù)或大小不相容,則將給出錯誤信息,提示用戶兩個矩陣是不可乘的。
除法運(yùn)算
在MATLAB中,有兩種矩陣除法運(yùn)算:右除/和左除。如果A矩陣是非奇異方陣,則B/A等效于B*inv(A),AB等效于inv(A)*B。
乘方運(yùn)算
一個矩陣的乘方運(yùn)算可以表示成A^x,要求A為方陣,x為標(biāo)量。
(2)點(diǎn)運(yùn)算
點(diǎn)運(yùn)算符:.*、./、.和.^。
兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣同型。
2.關(guān)系運(yùn)算
關(guān)系運(yùn)算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等 于)、==(等于)、~=(不等于)。
當(dāng)兩個比較量是標(biāo)量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系 表達(dá)式結(jié)果為1,否則為0。
當(dāng)參與比較的量是兩個同型的矩陣時,比較是對兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個進(jìn)行,最終的關(guān)系運(yùn)算的結(jié)果是一個與原矩陣同型的矩
陣,它的元素由0或1組成。
當(dāng)參與比較的一個是標(biāo)量,而另一個是矩陣時,則把標(biāo)量與矩陣的每一個元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個比較,最終的關(guān)系運(yùn)算的結(jié)果是一個與原矩陣同
型的矩陣,它的元素由0或1組成。
3.邏輯運(yùn)算
邏輯運(yùn)算符:&(與)、|(或)和~(非)。設(shè)參與邏輯運(yùn)算的是兩個標(biāo)量a和b,那么運(yùn)算規(guī)則為:
a&b a、b全為非零時,運(yùn)算結(jié)果為1,否則為0。
a|b a、b中只要有一個為非零時,運(yùn)算結(jié)果為1。
~a 當(dāng)a為零時,運(yùn)算結(jié)果為1;當(dāng)a為非零時,運(yùn)算結(jié)果為0。
若參與邏輯運(yùn)算的是兩個同型矩陣,那么將對矩陣相同位置上的元素按標(biāo)量規(guī)則逐個進(jìn)行運(yùn)算,最終運(yùn)算結(jié)果是一個與原矩陣同型的矩陣,其元素由1或0組成。
若參與邏輯運(yùn)算的一個是標(biāo)量,一個是矩陣,那么將在標(biāo)量與矩陣中的每個元素之間按標(biāo)量規(guī)則逐個進(jìn)行運(yùn)算,最終運(yùn)算結(jié)果是一個與矩陣同型的矩陣,其元素由1或0組成。
水仙花數(shù)是指各位數(shù)字的立方之和等于該數(shù)本身的三位正整數(shù)。 求全部水仙花數(shù)。
1.7 字符串處理
1.字符串的表示
在MATLAB中,字符串是用單引號括起來的字符序列。
若字符串中的字符含有單引號,則該單引號字符要用兩個單引號來表示。
建立多行字符串,形成字符串矩陣。
建立一個字符串向量,然后對該向量做如下處理:
① 取第1~5個字符組成的子字符串。
② 將字符串倒過來重新排列。
③ 將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。
④ 統(tǒng)計字符串中小寫字母的個數(shù)。
2.字符串的操作
(1) 字符串的執(zhí)行
格式: eval(s)
(2)字符串與數(shù)值之間的轉(zhuǎn)換
abs和double函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的ASCII碼數(shù)值矩陣。
char函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。
(3)字符串的比較
字符串的比較有兩種方法:利用關(guān)系運(yùn)算符或字符串比較函數(shù)。
關(guān)系運(yùn)算符比較:兩個字符串里的每個字符依次按ASCII值大小逐 個進(jìn)行比較,比較的結(jié)果是一個數(shù)值向量,向量中的元素要么是1 ,要么是0。
字符串比較函數(shù)用于判斷字符串是否相等,有4種比較方式,函數(shù)如下:
strcmp(s1,s2):用來比較字符串s1和s2是否相等,如果相等,返回結(jié)果為1,否則 返回0。
strncmp(s1,s2,n):用來比較兩個字符串前n個字符是否相等,如果相等,返回1, 否則返回0。
strcmpi(s1,s2):在忽略字母大小寫前提下,比較字符串s1和s2是否相等,如果相 等,返回1,否則返回0。
strncmpi(s1,s2,n):在忽略字符串大小寫前提下,比較兩個字符串前n個字符是否 相等,如果相等,返回1,否則返回0。
(4)字符串的查找與替換
findstr(s1,s2):返回短字符串在長字符串中的開始位置。
strrep(s1,s2,s3):將字符串s1中的所有子字符串s2替換為字符 串s3。
總結(jié)
以上是生活随笔為你收集整理的Matlab学习笔记1—MATLAB基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php数据库中数据查询
- 下一篇: 数据结构(十):图