版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
汽車創(chuàng)新設(shè)計(jì)與實(shí)踐(1)實(shí)踐指導(dǎo)書(shū)MATLAB原理與應(yīng)用目錄1.Matlab簡(jiǎn)介 42.Matlab桌面基礎(chǔ)知識(shí) 53.矩陣和數(shù)組 7數(shù)組創(chuàng)建 7矩陣和數(shù)組運(yùn)算 8串聯(lián) 10復(fù)數(shù) 104.數(shù)組索引 115.工作區(qū)變量 136.文本和字符 147.調(diào)用函數(shù) 158.編程和腳本 17示例腳本 17循環(huán)及條件語(yǔ)句 189.表達(dá)式 20變量 20數(shù)字 20矩陣運(yùn)算符 21數(shù)組運(yùn)算符 22函數(shù) 23表達(dá)式示例 2410.輸入命令 26format函數(shù) 26取消輸出 27輸入長(zhǎng)語(yǔ)句 27命令行編輯 2811.二維圖和三維圖 29線圖 29三維繪圖 32子圖 3212.基本繪圖函數(shù) 34創(chuàng)建繪圖 34在一幅圖形中繪制多個(gè)數(shù)據(jù)集 35指定線型和顏色 37繪制線條和標(biāo)記 37繪制虛數(shù)和復(fù)數(shù)數(shù)據(jù) 38將繪圖添加到現(xiàn)有圖形中 39圖窗窗口 40在一幅圖窗中顯示多個(gè)繪圖 40控制軸 41添加軸標(biāo)簽和標(biāo)題 42
1.Matlab簡(jiǎn)介MATLAB是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于數(shù)據(jù)分析、無(wú)線通信、深度學(xué)習(xí)、圖像處理與計(jì)算機(jī)視覺(jué)、信號(hào)處理、量化金融與風(fēng)險(xiǎn)管理、機(jī)器人,控制系統(tǒng)等領(lǐng)域。MATLAB是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室),軟件主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來(lái)解算問(wèn)題要比用C,F(xiàn)ORTRAN等語(yǔ)言完成相同的事情簡(jiǎn)捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++,JAVA的支持。
2.Matlab桌面基礎(chǔ)知識(shí)啟動(dòng)MATLAB?
時(shí),桌面會(huì)以默認(rèn)布局顯示。桌面包括下列面板:當(dāng)前文件夾
-訪問(wèn)您的文件。命令行窗口
-在命令行中輸入命令(由提示符(>>)表示)。工作區(qū)
-瀏覽您創(chuàng)建或從文件導(dǎo)入的數(shù)據(jù)。使用MATLAB時(shí),可發(fā)出創(chuàng)建變量和調(diào)用函數(shù)的命令。例如,通過(guò)在命令行中鍵入以下語(yǔ)句來(lái)創(chuàng)建名為
a
的變量:a=1MATLAB將變量
a
添加到工作區(qū),并在命令行窗口中顯示結(jié)果(加粗部分為工作區(qū)顯示部分)。a=1創(chuàng)建更多變量。b=2b=2c=a+bc=3d=cos(a)d=0.5403如果未指定輸出變量,MATLAB將使用變量
ans(answer
的縮略形式)來(lái)存儲(chǔ)計(jì)算結(jié)果。sin(a)ans=0.8415如果語(yǔ)句以分號(hào)結(jié)束,MATLAB會(huì)執(zhí)行計(jì)算,但不在命令行窗口中顯示輸出。e=a*b;按向上(↑)和向下箭頭鍵(↓)可以重新調(diào)用以前的命令。在空白命令行中或在鍵入命令的前幾個(gè)字符之后按箭頭鍵。例如,要重新調(diào)用命令
b=2,請(qǐng)鍵入
b,然后按向上箭頭鍵。
3.矩陣和數(shù)組MATLAB
是“matrixlaboratory”的縮寫(xiě)形式。MATLAB?主要用于處理整個(gè)的矩陣和數(shù)組,而其他編程語(yǔ)言大多逐個(gè)處理數(shù)值。所有MATLAB變量都是多維數(shù)組,與數(shù)據(jù)類型無(wú)關(guān)。矩陣是指通常用來(lái)進(jìn)行線性代數(shù)運(yùn)算的二維數(shù)組。數(shù)組創(chuàng)建要?jiǎng)?chuàng)建每行包含四個(gè)元素的數(shù)組,請(qǐng)使用逗號(hào)(,)或空格分隔各元素。a=[1234]a=1×41234這種數(shù)組為行向量。要?jiǎng)?chuàng)建包含多行的矩陣,請(qǐng)使用分號(hào)分隔各行。a=[123;456;7810]a=3×31234567810創(chuàng)建矩陣的另一種方法是使用
ones、zeros
或
rand
等函數(shù)。例如,創(chuàng)建一個(gè)由零組成的5×1列向量。z=zeros(5,1)z=5×100000矩陣和數(shù)組運(yùn)算MATLAB允許您使用單一的算術(shù)運(yùn)算符或函數(shù)來(lái)處理矩陣中的所有值。a+10ans=3×3111213141516171820sin(a)ans=3×30.84150.90930.1411-0.7568-0.9589-0.27940.65700.9894-0.5440要轉(zhuǎn)置矩陣,請(qǐng)使用單引號(hào)('):a'ans=3×31472583610您可以使用
*
運(yùn)算符執(zhí)行標(biāo)準(zhǔn)矩陣乘法,這將計(jì)算行與列之間的內(nèi)積。例如,確認(rèn)矩陣乘以其逆矩陣可返回單位矩陣:p=a*inv(a)p=3×31.00000-0.000001.00000001.0000請(qǐng)注意,p
不是整數(shù)值矩陣。MATLAB將數(shù)字存儲(chǔ)為浮點(diǎn)值,算術(shù)運(yùn)算可以區(qū)分實(shí)際值與其浮點(diǎn)表示之間的細(xì)微差別。使用
format
命令可以顯示更多小數(shù)位數(shù):formatlongp=a*inv(a)p=3×31.0000000000000000-0.00000000000000001.0000000000000000000.999999999999998使用以下命令將顯示內(nèi)容重置為更短格式formatshortformat
僅影響數(shù)字顯示,而不影響MATLAB對(duì)數(shù)字的計(jì)算或保存方式。要執(zhí)行元素級(jí)乘法(而非矩陣乘法),請(qǐng)使用
.*
運(yùn)算符:p=a.*ap=3×31491625364964100乘法、除法和冪的矩陣運(yùn)算符分別具有執(zhí)行元素級(jí)運(yùn)算的對(duì)應(yīng)數(shù)組運(yùn)算符。例如,計(jì)算
a
的各個(gè)元素的三次方:a.^3ans=3×31827641252163435121000串聯(lián)串聯(lián)是連接數(shù)組以便形成更大數(shù)組的過(guò)程。實(shí)際上,第一個(gè)數(shù)組是通過(guò)將其各個(gè)元素串聯(lián)起來(lái)而構(gòu)成的。成對(duì)的方括號(hào)
[]
即為串聯(lián)運(yùn)算符。A=[a,a]A=3×612312345645678107810使用逗號(hào)將彼此相鄰的數(shù)組串聯(lián)起來(lái)稱為水平串聯(lián)。每個(gè)數(shù)組必須具有相同的行數(shù)。同樣,如果各數(shù)組具有相同的列數(shù),則可以使用分號(hào)垂直串聯(lián)。A=[a;a]A=6×312345678101234567810復(fù)數(shù)復(fù)數(shù)包含實(shí)部和虛部,虛數(shù)單位是
-1
的平方根。sqrt(-1)ans=0.0000+1.0000i要表示復(fù)數(shù)的虛部,請(qǐng)使用
i
或
j。c=[3+4i,4+3j;-i,10j]c=2×2complex3.0000+4.0000i4.0000+3.0000i0.0000-1.0000i0.0000+10.0000i
4.數(shù)組索引MATLAB?中的每個(gè)變量都是一個(gè)可包含許多數(shù)字的數(shù)組。如果要訪問(wèn)數(shù)組的選定元素,請(qǐng)使用索引。以4×4幻方矩陣
A
為例:A=magic(4)A=16231351110897612414151引用數(shù)組中的特定元素有兩種方法。最常見(jiàn)的方法是指定行和列下標(biāo),例如A(4,2)ans=14另一種方法不太常用,但有時(shí)非常有用,即使用單一下標(biāo)按順序向下遍歷每一列:A(8)ans=14使用單一下標(biāo)引用數(shù)組中特定元素的方法稱為線性索引。如果嘗試在賦值語(yǔ)句右側(cè)引用數(shù)組外部元素,MATLAB會(huì)引發(fā)錯(cuò)誤。test=A(4,5)Indexexceedsmatrixdimensions.不過(guò),您可以在賦值語(yǔ)句左側(cè)指定當(dāng)前維外部的元素。數(shù)組大小會(huì)增大以便容納新元素。A(4,5)=17A=1623130511108097612041415117要引用多個(gè)數(shù)組元素,請(qǐng)使用冒號(hào)運(yùn)算符,這使您可以指定一個(gè)格式為
start:end
的范圍。例如,列出
A
前三行及第二列中的元素:A(1:3,2)ans=2117單獨(dú)的冒號(hào)(沒(méi)有起始值或結(jié)束值)指定該維中的所有元素。例如,選擇
A
第三行中的所有列:A(3,:)ans=976120此外,冒號(hào)運(yùn)算符還允許您使用較通用的格式
start:step:end
創(chuàng)建等距向量值。B=0:10:100B=0102030405060708090100如果省略中間的步驟(如
start:end
中),MATLAB會(huì)使用默認(rèn)步長(zhǎng)值
1。
5.工作區(qū)變量工作區(qū)包含在MATLAB?
中創(chuàng)建或從數(shù)據(jù)文件或其他程序?qū)氲淖兞?。例如,下列語(yǔ)句在工作區(qū)中創(chuàng)建變量
A
和
B。A=magic(4);B=rand(3,5,2);使用
whos
可以查看工作區(qū)的內(nèi)容。whosNameSizeBytesClassAttributesA4x4128doubleB3x5x2240double此外,桌面上的“工作區(qū)”窗格也會(huì)顯示變量。退出MATLAB后,工作區(qū)變量不會(huì)保留。使用
save
命令保存數(shù)據(jù)以供將來(lái)使用,savemyfile.mat通過(guò)保存,系統(tǒng)會(huì)使用
.mat
擴(kuò)展名將工作區(qū)保存在當(dāng)前工作文件夾中一個(gè)名為MAT文件的壓縮文件中。要清除工作區(qū)中的所有變量,請(qǐng)使用
clear
命令。使用
load
將MAT文件中的數(shù)據(jù)還原到工作區(qū)。loadmyfile.mat
6.文本和字符當(dāng)您處理文本時(shí),將字符序列括在單引號(hào)中??梢詫⑽谋举x給變量。myText='Hello,world';如果文本包含單引號(hào),請(qǐng)?jiān)诙x中使用兩個(gè)單引號(hào)。otherText='You''reright'otherText='You'reright'與所有MATLAB?變量一樣,myText
和
otherText
為數(shù)組。其類或數(shù)據(jù)類型為
char(character
的縮略形式)。whosmyTextNameSizeBytesClassAttributesmyText1x1224char您可以使用方括號(hào)串聯(lián)字符數(shù)組,就像串聯(lián)數(shù)值數(shù)組一樣。longText=[myText,'-',otherText]longText='Hello,world-You'reright'要將數(shù)值轉(zhuǎn)換為字符,請(qǐng)使用
num2str
或
int2str
等函數(shù)。f=71;c=(f-32)/1.8;tempText=['Temperatureis',num2str(c),'C']tempText='Temperatureis21.6667C'
7.調(diào)用函數(shù)MATLAB?提供了大量執(zhí)行計(jì)算任務(wù)的函數(shù)。在其他編程語(yǔ)言中,函數(shù)等同于子例程或方法。要調(diào)用函數(shù),例如
max,請(qǐng)將其輸入?yún)?shù)括在圓括號(hào)中:A=[135];max(A)ans=5如果存在多個(gè)輸入?yún)?shù),請(qǐng)使用逗號(hào)加以分隔:B=[1064];max(A,B)ans=1×31065通過(guò)將函數(shù)賦值給變量,返回該函數(shù)的輸出:maxA=max(A)maxA=5如果存在多個(gè)輸出參數(shù),請(qǐng)將其括在方括號(hào)中:[maxA,location]=max(A)maxA=5location=3將任何字符輸入括在單引號(hào)中:disp('helloworld')helloworld要調(diào)用不需要任何輸入且不會(huì)返回任何輸出的函數(shù),請(qǐng)只鍵入函數(shù)名稱:clcclc
函數(shù)清除命令行窗口。
8.編程和腳本腳本是最簡(jiǎn)單的一種MATLAB?
程序。腳本是一個(gè)包含多行連續(xù)MATLAB命令和函數(shù)調(diào)用的擴(kuò)展名為
.m
的文件。在命令行中鍵入腳本名稱即可運(yùn)行該腳本。示例腳本要?jiǎng)?chuàng)建腳本,請(qǐng)使用
edit
命令。editplotrand這會(huì)打開(kāi)一個(gè)名為
plotrand.m
的空白文件。輸入一些繪制隨機(jī)數(shù)據(jù)的向量的代碼:n=50;r=rand(n,1);plot(r)然后,添加在繪圖中的均值處繪制一條水平線的代碼:m=mean(r);holdonplot([0,n],[m,m])holdofftitle('MeanofRandomUniformData')編寫(xiě)代碼時(shí),最好添加描述代碼的注釋。注釋有助于其他人員理解您的代碼,并且有助您在稍后返回代碼時(shí)再度記起。使用百分比(%)符號(hào)添加注釋。%Generaterandomdatafromauniformdistribution%andcalculatethemean.Plotthedataandthemean.n=50;%50datapointsr=rand(n,1);plot(r)%Drawalinefrom(0,m)to(n,m)m=mean(r);holdonplot([0,n],[m,m])holdofftitle('MeanofRandomUniformData')將文件保存在當(dāng)前文件夾中。要運(yùn)行腳本,請(qǐng)?jiān)诿钚兄墟I入腳本名稱:plotrand還可以從編輯器通過(guò)按運(yùn)行按鈕
運(yùn)行腳本。循環(huán)及條件語(yǔ)句在腳本中,可以使用關(guān)鍵字
for、while、if
和
switch
循環(huán)并有條件地執(zhí)行代碼段。例如,創(chuàng)建一個(gè)名為
calcmean.m
的腳本,該腳本使用
for
循環(huán)來(lái)計(jì)算5個(gè)隨機(jī)樣本的均值和總均值。nsamples=5;npoints=50;fork=1:nsamplescurrentData=rand(npoints,1);sampleMean(k)=mean(currentData);endoverallMean=mean(sampleMean)現(xiàn)在,修改
for
循環(huán),以便在每次迭代時(shí)查看結(jié)果。在命令行窗口中顯示包含當(dāng)前迭代次數(shù)的文本,并從
sampleMean
的賦值中刪除分號(hào)。fork=1:nsamplesiterationString=['Iteration#',int2str(k)];disp(iterationString)currentData=rand(npoints,1);sampleMean(k)=mean(currentData)endoverallMean=mean(sampleMean)運(yùn)行腳本時(shí),會(huì)顯示中間結(jié)果,然后計(jì)算總均值。calcmeanIteration#1sampleMean=0.3988Iteration#2sampleMean=0.39880.4950Iteration#3sampleMean=0.39880.49500.5365Iteration#4sampleMean=0.39880.49500.53650.4870Iteration#5sampleMean=0.39880.49500.53650.48700.5501overallMean=0.4935在編輯器中,在
calcmean.m
末尾添加根據(jù)
overallMean
的值顯示不同消息的條件語(yǔ)句。ifoverallMean<.49disp('Meanislessthanexpected')elseifoverallMean>.51disp('Meanisgreaterthanexpected')elsedisp('Meaniswithintheexpectedrange')end運(yùn)行
calcmean
并驗(yàn)證是否顯示關(guān)于計(jì)算的
overallMean
的正確消息。例如:overallMean=0.5178Meanisgreaterthanexpected
9.表達(dá)式變量與大多數(shù)其他編程語(yǔ)言一樣,MATLAB?
語(yǔ)言提供數(shù)學(xué)表達(dá)式,但與大多數(shù)編程語(yǔ)言不同的是,這些表達(dá)式涉及整個(gè)矩陣。MATLAB不需要任何類型聲明或維度說(shuō)明。當(dāng)MATLAB遇到新的變量名稱時(shí),它會(huì)自動(dòng)創(chuàng)建變量,并分配適當(dāng)大小的存儲(chǔ)。如果此變量已存在,MATLAB會(huì)更改其內(nèi)容,并根據(jù)需要分配新存儲(chǔ)。例如,num_students=25創(chuàng)建一個(gè)名為
num_students
的1×1矩陣,并將值25存儲(chǔ)在該矩陣的單一元素中。要查看分配給任何變量的矩陣,只需輸入變量名稱即可。變量名稱包括一個(gè)字母,后面可以跟隨任意數(shù)目的字母、數(shù)字或下劃線。MATLAB區(qū)分大小寫(xiě);它可以區(qū)分大寫(xiě)和小寫(xiě)字母。A
和
a
不是相同變量。盡管變量名稱可以為任意長(zhǎng)度,MATLAB僅使用名稱的前
N
個(gè)字符(其中
N
是函數(shù)
namelengthmax
返回的數(shù)字),并忽略其余字符。因此,很重要的一點(diǎn)是,應(yīng)使每個(gè)變量名稱的前
N
個(gè)字符保持唯一,以便MATLAB能夠區(qū)分變量。N=namelengthmaxN=63數(shù)字MATLAB使用傳統(tǒng)的十進(jìn)制記數(shù)法以及可選的小數(shù)點(diǎn)和前導(dǎo)加號(hào)或減號(hào)來(lái)表示數(shù)字??茖W(xué)記數(shù)法使用字母
e
來(lái)指定10次方的縮放因子。虛數(shù)使用
i
或
j
作為后綴。下面給出了合法數(shù)字的一些示例:3-990.00019.63972381.60210e-206.02252e231i-3.14159j3e5iMATLAB使用IEEE?
浮點(diǎn)標(biāo)準(zhǔn)規(guī)定的
long
格式在內(nèi)部存儲(chǔ)所有數(shù)字。浮點(diǎn)數(shù)的有限精度約為16位有效小數(shù)位數(shù),有限范圍約為10-308
至10+308。以雙精度格式表示的數(shù)字的最大精度為52位。任何需要52位以上的雙精度數(shù)字都會(huì)丟失一定精度。例如,下面的代碼因截?cái)喽鴮蓚€(gè)不相等的值顯示為相等:x=36028797018963968;y=36028797018963972;x==yans=1整數(shù)的可用精度為8位、16位、32位和64位。將相同數(shù)字存儲(chǔ)為64位整數(shù)會(huì)保留精度:x=uint64(36028797018963968);y=uint64(36028797018963972);x==yans=0MATLAB軟件存儲(chǔ)復(fù)數(shù)的實(shí)部和虛部。該軟件根據(jù)上下文采用不同方法來(lái)處理各個(gè)部分的量值。例如,sort
函數(shù)根據(jù)量值進(jìn)行排序,如果量值相等,則根據(jù)相位角度排序。sort([3+4i,4+3i])ans=4.0000+3.0000i3.0000+4.0000i這是由相位角度所致:angle(3+4i)ans=0.9273angle(4+3i)ans=0.6435“等于”關(guān)系運(yùn)算符
==
要求實(shí)部和虛部相等。其他二進(jìn)制關(guān)系運(yùn)算符
>、<、>=
和
<=
忽略數(shù)字的虛部,而僅考慮實(shí)部。矩陣運(yùn)算符表達(dá)式使用大家熟悉的算術(shù)運(yùn)算符和優(yōu)先法則。+加法-減法*乘法/除法\左除^冪'復(fù)共軛轉(zhuǎn)置()指定計(jì)算順序數(shù)組運(yùn)算符如果矩陣不用于線性代數(shù)運(yùn)算,則成為二維數(shù)值數(shù)組。數(shù)組的算術(shù)運(yùn)算按元素執(zhí)行。這意味著,加法和減法運(yùn)算對(duì)數(shù)組和矩陣都是相同的,但乘法運(yùn)算不相同。MATLAB的乘法數(shù)組運(yùn)算表示法中包含點(diǎn),也就是小數(shù)點(diǎn)。運(yùn)算符列表包括+加法-減法.*逐元素乘法./逐元素除法.\逐元素左除.^逐元素冪.'非共軛數(shù)組轉(zhuǎn)置如果使用數(shù)組乘法將丟勒的幻方矩陣自乘A.*A則會(huì)生成一個(gè)數(shù)組,該數(shù)組包含介于1至16之間的整數(shù)的平方,并且以不常見(jiàn)的順序排列:ans=256941692510012164813649144162251961構(gòu)建表數(shù)組運(yùn)算對(duì)構(gòu)建表非常有用。假定
n
為列向量n=(0:9)';然后,pows=[nn.^22.^n]構(gòu)建一個(gè)平方和2次冪的表:pows=001112244398416165253263664749128864256981512初等數(shù)學(xué)函數(shù)逐元素處理數(shù)組元素。因此formatshortgx=(1:0.1:2)';logs=[xlog10(x)]構(gòu)建一個(gè)對(duì)數(shù)表。logs=1.001.10.041391.20.079181.30.113941.40.146131.50.176091.60.204121.70.230451.80.255271.90.278752.00.30103函數(shù)MATLAB提供了大量標(biāo)準(zhǔn)初等數(shù)學(xué)函數(shù),包括
abs、sqrt、exp
和
sin。生成負(fù)數(shù)的平方根或?qū)?shù)不會(huì)導(dǎo)致錯(cuò)誤;系統(tǒng)會(huì)自動(dòng)生成相應(yīng)的復(fù)數(shù)結(jié)果。MATLAB還提供了許多其他高等數(shù)學(xué)函數(shù),包括貝塞爾函數(shù)和伽瑪函數(shù)。其中的大多數(shù)函數(shù)都接受復(fù)數(shù)參數(shù)。有關(guān)初等數(shù)學(xué)函數(shù)的列表,請(qǐng)鍵入helpelfun有關(guān)更多高等數(shù)學(xué)函數(shù)和矩陣函數(shù)的列表,請(qǐng)鍵入helpspecfunhelpelmat某些函數(shù)(例如,sqrt
和
sin)是內(nèi)置函數(shù)。內(nèi)置函數(shù)是MATLAB核心的一部分,因此這些函數(shù)非常高效,但計(jì)算詳細(xì)信息是不可訪問(wèn)的。其他函數(shù)使用MATLAB編程語(yǔ)言實(shí)現(xiàn),因此可以訪問(wèn)其計(jì)算詳細(xì)信息。內(nèi)置函數(shù)與其他函數(shù)之間存在一些差異。例如,對(duì)于內(nèi)置函數(shù),您看不到代碼。對(duì)于其他函數(shù),您可以看到代碼,甚至可以根據(jù)需要修改代碼。一些特殊函數(shù)提供了有用的常量值。pi3.14159265...i虛數(shù)單位
G?1j與
i
相同eps浮點(diǎn)相對(duì)精度
ε=2?52realmin最小浮點(diǎn)數(shù)
2?1022realmax最大浮點(diǎn)數(shù)
(2?ε)21023Inf無(wú)窮大NaN非數(shù)字通過(guò)將非零值除以零或計(jì)算明確定義的溢出(即超過(guò)
realmax)的數(shù)學(xué)表達(dá)式,會(huì)生成無(wú)窮大。通過(guò)嘗試計(jì)算
0/0
或
Inf-Inf
等沒(méi)有明確定義的數(shù)值的表達(dá)式,會(huì)生成非數(shù)字。函數(shù)名稱不會(huì)保留。您可以使用如下新變量覆蓋任何函數(shù)名稱eps=1.e-6并在后續(xù)計(jì)算中使用該值??梢允褂靡韵旅罨謴?fù)原始函數(shù)cleareps表達(dá)式示例您已經(jīng)學(xué)習(xí)了MATLAB表達(dá)式的幾個(gè)示例。下面是一些其他示例及生成的值:rho=(1+sqrt(5))/2rho=1.6180a=abs(3+4i)a=5z=sqrt(besselk(4/3,rho-i))z=0.3730+0.3214ihuge=exp(log(realmax))huge=1.7977e+308toobig=pi*hugetoobig=Inf
10.輸入命令format函數(shù)format
函數(shù)控制所顯示的值的數(shù)值格式。此函數(shù)僅影響數(shù)字顯示方式,而不會(huì)影響MATLAB?
軟件如何計(jì)算或保存數(shù)字。下面提供了不同格式及由向量
x
生成的最終輸出,該向量的各個(gè)分量具有不同的量值。x=[4/31.2345e-6]formatshort1.33330.0000formatshorte1.3333e+0001.2345e-006formatshortg1.33331.2345e-006formatlong1.333333333333330.00000123450000formatlonge1.333333333333333e+0001.234500000000000e-006formatlongg1.333333333333331.2345e-006formatbank1.330.00formatrat4/31/810045formathex3ff55555555555553eb4b6231abfd271如果矩陣的最大元素大于103
或小于10-3,MATLAB會(huì)對(duì)短格式和長(zhǎng)格式應(yīng)用常用縮放因子。除了上面顯示的
format
函數(shù),formatcompact會(huì)不顯示在輸出中出現(xiàn)的多個(gè)空行。這樣,您可以在屏幕或窗口中查看更多信息。如果要進(jìn)一步控制輸出格式,請(qǐng)使用
sprintf
和
fprintf
函數(shù)。取消輸出如果您在僅鍵入語(yǔ)句后按
Return
或
Enter,MATLAB會(huì)在屏幕上自動(dòng)顯示結(jié)果。但是,如果使用分號(hào)結(jié)束行,MATLAB會(huì)執(zhí)行計(jì)算,但不會(huì)顯示任何輸出。當(dāng)生成大型矩陣時(shí),此功能尤其有用。例如,A=magic(100);輸入長(zhǎng)語(yǔ)句如果語(yǔ)句無(wú)法容納在一行中,請(qǐng)使用省略號(hào)(三個(gè)句點(diǎn))...,后跟
Return
或
Enter
以指示該語(yǔ)句在下一行繼續(xù)。例如,s=1-1/2+1/3-1/4+1/5-1/6+1/7...-1/8+1/9-1/10+1/11-1/12;=、+
和-符號(hào)周圍的空白是可選的,但可提高可讀性。命令行編輯使用鍵盤上的各個(gè)箭頭鍵和控制鍵可以重新調(diào)用、編輯和重用先前鍵入的語(yǔ)句。例如,假定您錯(cuò)誤地輸入了rho=(1+sqt(5))/2sqrt
的拼寫(xiě)不正確。MATLAB會(huì)給出以下錯(cuò)誤信息Undefinedfunction'sqt'forinputargumentsoftype'double'.您只需按↑鍵,而不必重新鍵入整行。系統(tǒng)將重新顯示鍵入的語(yǔ)句。使用←鍵移動(dòng)光標(biāo)并插入缺少的
r。反復(fù)使用↑鍵可重新調(diào)用前面的行。鍵入幾個(gè)字符并按↑鍵可查找前文中以這些字符開(kāi)頭行。還可以從命令歷史記錄中復(fù)制以前執(zhí)行的語(yǔ)句。
11.二維圖和三維圖線圖要?jiǎng)?chuàng)建二維線圖,請(qǐng)使用
plot
函數(shù)。例如,繪制從0到
之間的正弦函數(shù)值:x=0:pi/100:2*pi;y=sin(x);plot(x,y)可以標(biāo)記軸并添加標(biāo)題。xlabel('x')ylabel('sin(x)')title('PlotoftheSineFunction')通過(guò)向
plot
函數(shù)添加第三個(gè)輸入?yún)?shù),您可以使用紅色虛線繪制相同的變量。plot(x,y,'r--')'r--'
為線條設(shè)定。每個(gè)設(shè)定可包含表示線條顏色、樣式和標(biāo)記的字符。標(biāo)記是在繪制的每個(gè)數(shù)據(jù)點(diǎn)上顯示的符號(hào),例如,+、o
或
*。例如,'g:*'
請(qǐng)求繪制使用
*
標(biāo)記的綠色點(diǎn)線。請(qǐng)注意,為第一幅繪圖定義的標(biāo)題和標(biāo)簽不再被用于當(dāng)前的圖窗窗口中。默認(rèn)情況下,每次調(diào)用繪圖函數(shù)、重置坐標(biāo)區(qū)及其他元素以準(zhǔn)備新繪圖時(shí),MATLAB?都會(huì)清除圖窗。要將繪圖添加到現(xiàn)有圖窗中,請(qǐng)使用
holdon。在使用
holdoff
或關(guān)閉窗口之前,當(dāng)前圖窗窗口中會(huì)顯示所有繪圖。x=0:pi/100:2*pi;y=sin(x);plot(x,y)holdony2=cos(x);plot(x,y2,':')legend('sin','cos')holdoff三維繪圖三維圖通常顯示一個(gè)由帶兩個(gè)變量的函數(shù)(即
z=f(x,y))定義的曲面圖。要計(jì)算
z,請(qǐng)首先使用
meshgrid
在此函數(shù)的域中創(chuàng)建一組(x,y)點(diǎn)。[X,Y]=meshgrid(-2:.2:2);Z=X.*exp(-X.^2-Y.^2);然后,創(chuàng)建曲面圖。surf(X,Y,Z)surf
函數(shù)及其伴隨函數(shù)
mesh
以三維形式顯示曲面圖。surf
使用顏色顯示曲面圖的連接線和面。mesh
生成僅以顏色標(biāo)記連接定義點(diǎn)的線條的線框曲面圖。子圖使用
subplot
函數(shù)可以在同一窗口的不同子區(qū)域顯示多個(gè)繪圖。subplot
的前兩個(gè)輸入表示每行和每列中的繪圖數(shù)。第三個(gè)輸入指定繪圖是否處于活動(dòng)狀態(tài)。例如,在圖窗窗口的2×2網(wǎng)格中創(chuàng)建四個(gè)繪圖。t=0:pi/10:2*pi;[X,Y,Z]=cylinder(4*cos(t));subplot(2,2,1);mesh(X);title('X');subplot(2,2,2);mesh(Y);title('Y');subplot(2,2,3);mesh(Z);title('Z');subplot(2,2,4);mesh(X,Y,Z);title('X,Y,Z');
12.基本繪圖函數(shù)創(chuàng)建繪圖plot
函數(shù)具有不同的形式,具體取決于輸入?yún)?shù)。如果
y
是向量,plot(y)
會(huì)生成
y
元素與
y
元素索引的分段線圖。如果有兩個(gè)向量被指定為參數(shù),plot(x,y)
會(huì)生成
y
對(duì)
x
的圖形。使用冒號(hào)運(yùn)算符創(chuàng)建從
0
至
的
x
值向量,計(jì)算這些值的正弦,并繪制結(jié)果。x=0:pi/100:2*pi;y=sin(x);plot(x,y)添加軸標(biāo)簽和標(biāo)題。xlabel
函數(shù)中的字符
\pi
用于創(chuàng)建符號(hào)
。title
函數(shù)中的
FontSize
屬性用于增大標(biāo)題所用的文本大小。xlabel('x=0:2\pi')ylabel('Sineofx')title('PlotoftheSineFunction','FontSize',12)在一幅圖形中繪制多個(gè)數(shù)據(jù)集通過(guò)調(diào)用一次
plot,多個(gè)
x-y
對(duì)組參數(shù)會(huì)創(chuàng)建多幅圖形。MATLAB?對(duì)每條線使用不同的顏色。例如,下列語(yǔ)句繪制
x
的三個(gè)相關(guān)函數(shù):x=0:pi/100:2*pi;y=sin(x);y2=sin(x-.25);y3=sin(x-.5);plot(x,y,x,y2,x,y3)legend
函數(shù)提供了一種標(biāo)識(shí)各條線的簡(jiǎn)單方法:legend('sin(x)','sin(x-.25)','sin(x-.5)')指定線型和顏色使用
plot
命令繪制數(shù)據(jù)時(shí),可以指定顏色、線型和標(biāo)記(例如加號(hào)或圓圈):plot(x,y,'color_style_marker')color_style_marker
包含一至四個(gè)字符(包括在單引號(hào)中),這些字符根據(jù)顏色、線型和標(biāo)記類型構(gòu)造而成。例如,plot(x,y,'r:+')使用紅色點(diǎn)線繪制數(shù)據(jù),并在每個(gè)數(shù)據(jù)點(diǎn)處放置一個(gè)
+
標(biāo)記。color_style_marker
由下列元素的組合形式構(gòu)成。類型值含義顏色'c'
'm'
'y'
'r'
'g'
'b'
'w'
'k'青藍(lán)
品紅
黃
紅
綠
藍(lán)
白
黑線型'-'
'--'
':'
'-.'
無(wú)字符實(shí)線
虛線
點(diǎn)線
點(diǎn)劃線
沒(méi)有線條標(biāo)記類型'+'
'o'
'*'
'x'
's'
'd'
'^'
'v'
'>'
'<'
'p'
'h'
無(wú)字符加號(hào)
空心圓
星號(hào)
字母x
空心正方形
空心菱形
空心上三角
空心下三角
空心右三角
空心左三角
空心五角形
空心六角形
無(wú)標(biāo)記繪制線條和標(biāo)記如果指定標(biāo)記類型,但未指定線型,MATLAB?
僅使用標(biāo)記創(chuàng)建圖形,而不會(huì)創(chuàng)建線條。例如,plot(x,y,'ks')在每個(gè)數(shù)據(jù)點(diǎn)繪制黑色正方形,但不會(huì)使用線條連接標(biāo)記。語(yǔ)句plot(x,y,'r:+')繪制紅色點(diǎn)線,并在每個(gè)數(shù)據(jù)點(diǎn)處放置加號(hào)標(biāo)記。在每十個(gè)數(shù)據(jù)點(diǎn)處放置標(biāo)記此示例展示如何使用比繪制線條所用的數(shù)據(jù)點(diǎn)更少的數(shù)據(jù)點(diǎn)來(lái)繪制標(biāo)記。它使用點(diǎn)線圖和標(biāo)記圖(分別采用不同數(shù)目的數(shù)據(jù)點(diǎn))繪制兩次數(shù)據(jù)圖:x1=0:pi/100:2*pi;x2=0:pi/10:2*pi;plot(x1,sin(x1),'r:',x2,sin(x2),'r+')繪制虛數(shù)和復(fù)數(shù)數(shù)據(jù)將多個(gè)復(fù)數(shù)值作為參數(shù)傳遞給
plot
時(shí),MATLAB會(huì)忽略虛部,但傳遞一個(gè)復(fù)數(shù)參數(shù)時(shí)除外。對(duì)于這一特殊情況,該命令是繪制虛部對(duì)實(shí)部的圖的一種快捷方式。因此,plot(Z)其中
Z
是復(fù)數(shù)向量或矩陣,等效于plot(real(Z),imag(Z))下列語(yǔ)句將繪制一個(gè)具有20條邊的多邊形,并在各頂點(diǎn)處繪制一個(gè)小圓圈。t=0:pi/10:2*pi;plot(exp(1i*t),'-o')axisequalaxisequal
命令使
x
和
y
軸上的各刻度線增量的長(zhǎng)度相同,這會(huì)使此繪圖看起來(lái)更加圓潤(rùn)。將繪圖添加到現(xiàn)有圖形中hold
命令用于將繪圖添加到現(xiàn)有圖形中。當(dāng)鍵入holdon時(shí),MATLAB不會(huì)在您發(fā)出其他繪圖命令時(shí)替換現(xiàn)有圖形。MATLAB而會(huì)將新圖形與當(dāng)前圖形合并在一起。例如,下列語(yǔ)句首先創(chuàng)建
peaks
函數(shù)的曲面圖,然后疊加同一函數(shù)的等高線圖:[x,y,z]=peaks;%Createsurfaceplotsurf(x,y,z)%Removeedgelines
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒園食堂工作計(jì)劃
- 風(fēng)電場(chǎng)知識(shí)培訓(xùn)課件
- 2025年小學(xué)教研工作計(jì)劃
- 2025年質(zhì)檢部工作計(jì)劃
- 2025幼兒園大班段教研計(jì)劃
- 2025年醫(yī)院感染管理工作計(jì)劃報(bào)告
- 長(zhǎng)途貨物運(yùn)輸合同三篇
- 2025年幼兒園健康教育計(jì)劃例文
- 2025年學(xué)校安全實(shí)施方案和工作計(jì)劃
- 2025年物業(yè)管理年度工作計(jì)劃
- 皮下注射抗凝劑相關(guān)知識(shí)試題
- 沛縣生活垃圾焚燒發(fā)電項(xiàng)目二期工程 環(huán)境影響報(bào)告書(shū) 報(bào)批稿
- DB44∕T 2149-2018 森林資源規(guī)劃設(shè)計(jì)調(diào)查技術(shù)規(guī)程
- 肝移植的歷史、現(xiàn)狀與展望
- 商業(yè)定價(jià)表(含各商鋪價(jià)格測(cè)算銷售回款)
- 【化學(xué)】重慶市2021-2022學(xué)年高一上學(xué)期期末聯(lián)合檢測(cè)試題
- 單位工程質(zhì)量控制程序流程圖
- 部編版小學(xué)語(yǔ)文三年級(jí)(下冊(cè))學(xué)期課程綱要
- 化學(xué)工業(yè)有毒有害作業(yè)工種范圍表
- 洼田飲水試驗(yàn)
- 定置定位管理一
評(píng)論
0/150
提交評(píng)論