版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MATLAB快速入門
編程環(huán)境1編程入門2繪圖3MATLAB快速入門編程環(huán)境1編程入門2繪圖31Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)等功能,被廣泛應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和畢業(yè)設(shè)計(jì)。Matlab功能強(qiáng)大、簡單易學(xué)、編程效率高,深受廣大科技工作者的歡迎。
Matlab是一種廣泛應(yīng)用于工程計(jì)算及數(shù)值分析領(lǐng)域的新型高級(jí)語言,現(xiàn)已成為國際公認(rèn)的最優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境。Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的2感受MatlabA=magic(3),det(A),inv(A),eig(A)
求的根f(x)=x*exp(x^2)
的10次導(dǎo)數(shù),在區(qū)間【0,1】上的積分等運(yùn)算x=symsxf=x*exp(x^2)
diff(f,x,10)int(f,x,0,1)
繪圖感受MatlabA=magic(3),det(A),inv3Matlab具有很強(qiáng)的數(shù)值計(jì)算功能
Matlab以矩陣作為數(shù)據(jù)操作的基本單位,但無需預(yù)先指定矩陣維數(shù)(動(dòng)態(tài)定維)提供十分豐富的數(shù)值計(jì)算函數(shù),方便計(jì)算,提高效率
簡便易學(xué):Matlab命令與數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),容易掌握Matlab是一個(gè)交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結(jié)果Matlab:MatrixLaboratryMatlab具有很強(qiáng)的數(shù)值計(jì)算功能Matlab以矩陣4Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大Matlab的編程功能Matlab簡單易學(xué)、編程效率高。Matlab的繪圖功能強(qiáng)大Matlab提供豐富的繪圖命令,
很方便實(shí)現(xiàn)數(shù)據(jù)的可視化Matlab豐富的工具箱(toolbox)根據(jù)專門領(lǐng)域中的特殊需要而設(shè)計(jì)的各種可選工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…
…Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大5Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面上的Matlab快捷圖標(biāo)使用Windows“開始”菜單→程序→MATLAB7.0→MATLAB7.0
Matlab系統(tǒng)的退出在Matlab主窗口File
菜單中選擇ExitMatlab
命令在Matlab命令窗口輸入exit或quit
命令單擊Matlab主窗口的“關(guān)閉”按鈕注:在任何時(shí)候,只要按ctrl+c,MATLAB將停止運(yùn)行的所有工作Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面6Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入命令的歷史記錄命令提示符Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入7Matlab的命令窗口
交互式的命令執(zhí)行方式在CommandWindow內(nèi)的提示符(>>)之后輸入運(yùn)算式,并按Enter鍵即可缺省變量名「ans」若不想在屏幕上輸出結(jié)果,可以在語句最后加分號(hào)cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令執(zhí)行方式在Comman8變量命名原則Matlab變量以字母開頭:x1,y,千萬不要以數(shù)字開頭
后面可以跟字母、數(shù)字
和下劃線變量名稱區(qū)分字母的
大小
寫,比如Abc和abc不同字母間不可留空格,可以用下劃線math_score
Matlab語句的通常形式變量=表達(dá)式續(xù)行符…的作用變量命名原則Matlab變量以字母開頭:x1,y,千萬9系統(tǒng)預(yù)定義變量Matlab變量
pi
圓周率
inf/Inf無窮大
nan/NaN
Not-a-Number,一個(gè)不定值,如0/0
eps浮點(diǎn)運(yùn)算相對(duì)精度特殊變量
ans
i/j
虛部單位,即應(yīng)盡量避免給系統(tǒng)預(yù)定義變量重新賦值!系統(tǒng)預(yù)定義變量Matlab變量pi圓周率i10
數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)默認(rèn)是雙精度實(shí)數(shù),表示方法同
C語言3,-9,0.4,1.603e-12,3.23e+20
浮點(diǎn)運(yùn)算的相對(duì)誤差為
eps
浮點(diǎn)數(shù)表示范圍為:10-308
~10308
復(fù)數(shù)的輸入
z=3+4i
(4與i之間不能有空格)
z=3+4*i數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)11數(shù)學(xué)運(yùn)算符
+
加法Matlab數(shù)值運(yùn)算
-
減法
*
乘法
/和
\
除法(右除和左除)
^
冪運(yùn)算.*./.\.^
點(diǎn)運(yùn)算數(shù)學(xué)運(yùn)算符+加法Matlab數(shù)值運(yùn)算-減法12常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)exp自然指數(shù)函數(shù)cos余弦函數(shù)pow22的冪tan正切函數(shù)abs絕對(duì)值函數(shù)asin反正弦函數(shù)angle復(fù)數(shù)的幅角acos反余弦函數(shù)real復(fù)數(shù)的實(shí)部atan反正切函數(shù)imag復(fù)數(shù)的虛部sinh雙曲正弦函數(shù)conj復(fù)數(shù)共軛運(yùn)算cosh雙曲余弦函數(shù)rem求余數(shù)或模運(yùn)算常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)e13函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模除求余asinh反雙曲正弦函數(shù)fix向零方向取整acosh反雙曲余弦函數(shù)floor不大于自變量的最大整數(shù)atanh反雙曲正切函數(shù)ceil不小于自變量的最小整數(shù)sqrt平方根函數(shù)round四舍五入到最鄰近的整數(shù)log自然對(duì)數(shù)函數(shù)sign符號(hào)函數(shù)log10常用對(duì)數(shù)函數(shù)gcd最大公因子log2以2為底的對(duì)數(shù)函數(shù)lcm最小公倍數(shù)常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模14簡單實(shí)例練習(xí):①求29的自然對(duì)數(shù)和無理數(shù)e的值②簡單實(shí)例練習(xí):15矩陣的基礎(chǔ)操作矩陣的基礎(chǔ)操作16
矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>
A=[123;456;789]矩陣同一行中的元素之間用空格或逗號(hào)分隔矩陣行與行之間用分號(hào)分開直接輸入法中,分號(hào)可以用回車代替矩陣Matlab的操作對(duì)象是矩陣矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>A=17矩陣下標(biāo)矩陣下標(biāo)18單個(gè)元素的引用例:>>
A(2,3)矩陣元素的引用利用小括弧和元素所在的位置(下標(biāo))x(i):向量x中的第i個(gè)元素A(i,j):矩陣A中的第i行,第j列元素單個(gè)元素的引用例:>>A(2,3)矩陣元素的引用利用小括19矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)A的第i行第j列元素
A(:,k)A的第k列
A(k,:)A的第k行
A(:,k:m)A的第k到第m列組成的子矩陣A(end,end)A的最后一行最后一列如何獲得由A的第一、三行和第一、二列組成的子矩陣?自己動(dòng)手矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)20矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素A(12)%查詢第12個(gè)元素A([914],[1015])%思考之A(:,4)%查詢第4列元素A(4,:)%查詢第4行元素A(end,:)%最后一行元素A(find(A>5))%查詢大于5的元素A(2,3)=5%重新賦值第2行3列元素為5矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素21
向量與矩陣的生成向量與矩陣的生成
向量的生成
直接輸入:a=[1,2,3,4]冒號(hào)創(chuàng)建:x=a:step:b
從矩陣中抽取行或列生成線性等分向量:x=linspace(a,b,n)
x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的點(diǎn)x4=a+h/2:h:b-h/2;%4倍的點(diǎn)向量與矩陣的生成向量與矩陣的生成向量的生成直接輸入:22大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>
A=[A;111213]在原矩陣的下方加一行如何在原矩陣的右邊添加一列?
已知矩陣A和行向量b,如何得到矩陣大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>A=23常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m
行n
列的零矩陣,m=n
時(shí)可簡寫為zeros(n)ones(m,n)生成一個(gè)m行n列的元素全為1的矩陣,
m=n
時(shí)可寫為ones(n)eye(m,n)生成一個(gè)主對(duì)角線全為1的m
行n
列矩陣,
m=n
時(shí)可簡寫為eye(n),即為n
維單位矩陣diag(A)diag(x)A是矩陣,則diag(A)為A的主對(duì)角線向量x是向量,diag(x)產(chǎn)生以x為主對(duì)角線的對(duì)角矩陣rand(m,n)產(chǎn)生0~1間均勻分布的隨機(jī)矩陣m=n
時(shí)簡寫為rand(n)randn(m,n)產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣
m=n
時(shí)簡寫為randn(n)常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m行n列24矩陣操作查看矩陣的大小:size
size(A)
列出矩陣A的行數(shù)和列數(shù)
size(A,1)返回矩陣A的行數(shù)
size(A,2)返回矩陣A的列數(shù)例:>>
A=[123;456]>>
size(A)>>
size(A,1)>>
size(A,2)
length(x)返回向量X的長度
length(A)等價(jià)于max(size(A))矩陣操作查看矩陣的大小:sizesize(A)列出25逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:det(A)
要求A為方陣矩陣的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:d26矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間不能有空格!
數(shù)組運(yùn)算包括:點(diǎn)乘、點(diǎn)除、點(diǎn)冪
相應(yīng)的數(shù)組運(yùn)算符為:“.*”,“./”,“.\”和“
.^”例:>>
A=[123;456];B=[321;654];>>
C=A.*B;D=A./B;E=A.\B;F=A.^B;矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間27數(shù)與數(shù)組的點(diǎn)冪x.^y
=[1^4,2^5,3^6]=[1,32,729]
x.^2
=[1^2,2^2,3^2]=[1,4,9]
2.^x
=
?例:x=[123];y=[456];數(shù)與數(shù)組的點(diǎn)冪x.^y=[1^4,2^5,3^6]=[1,28矩陣的“除法”
矩陣的除法:/、\右除和左除
若A可逆方陣,則A\B
<==>A的逆左乘B<==>inv(A)*BB/A
<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩陣除法可以理解為當(dāng)A和B行數(shù)相等時(shí)即可進(jìn)行左除當(dāng)A和B列數(shù)相等時(shí)即可進(jìn)行右除例:設(shè)A、B滿足關(guān)系式:AB=2B+A,求B。其中A=[301;110;014]。矩陣的“除法”矩陣的除法:/、\右除和左除若A可29向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總乘積mean平均值std標(biāo)準(zhǔn)差median中位數(shù)sort排序dot數(shù)量積cross向量積例:A=magic(3)或A=1:5%運(yùn)算對(duì)向量或矩陣都適用B=mean(A)C=sum(A)向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總30矩陣操作矩陣的上、下三角陣,對(duì)角陣
triu(A,k)uppertriangularpart上三角
tril(A,k)lowertriangularpart下三角矩陣的旋轉(zhuǎn)
fliplr(A)
左右旋轉(zhuǎn)
flipud(A)
上下旋轉(zhuǎn)
rot90(A)
逆時(shí)針旋轉(zhuǎn)90度;
rot90(A,k)逆時(shí)針旋轉(zhuǎn)k×90
度矩陣操作矩陣的上、下三角陣,對(duì)角陣triu(A,k)31變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量
save
將所有變量存入文件matlab.mat
savemydata
將所有變量存入指定文件mydata.mat存儲(chǔ)指定的變量
savemydata.mat
將所有變量存入文件mydata.matsave
文件名
變量名列表例:>>
savemydataAxz
變量名列表中各變量之間用空格分隔。變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量save將所有變量32變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間
loadmydata
載入數(shù)據(jù)文件中的所有變量
loadmydataAx
從數(shù)據(jù)文件中提取指定變量掌握如何從txt文件和excel文件載入數(shù)據(jù)清除當(dāng)前工作空間中的變量
clear清除當(dāng)前工作空間中的所有變量
clearAx
清除指定的變量變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間loadm33輸出格式Matlab的輸出
Matlab以雙精度執(zhí)行所有的運(yùn)算,運(yùn)算結(jié)果可以在屏幕上輸出,同時(shí)賦給指定變量;若無指定變量,則系統(tǒng)會(huì)自動(dòng)將結(jié)果賦給變量“ans”
File菜單,選擇Preferences菜單項(xiàng),可以設(shè)置顯示格式Matlab中數(shù)的輸出格式可以通過format
命令指定format只改變變量的輸出格式,但不會(huì)影響變量的值!輸出格式Matlab的輸出Matlab以雙精度執(zhí)行所34幾個(gè)小技巧
Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)全功能:Tab鍵
可以先輸入命令的前幾個(gè)字符,再按上下鍵縮小搜索范圍用Esc鍵刪除命令行幾個(gè)小技巧Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)35Matlab幫助系統(tǒng)聯(lián)機(jī)幫助help
顯示指定命令的簡短使用說明例:>>
helpeig
helpsqrt
>>
helphelp
helpelfun
詳細(xì)使用幫助doc
以網(wǎng)頁形式顯示指定命令的幫助頁例:>>
doceig
其它相關(guān)命令helpdesk、helpwin、moreMatlab幫助系統(tǒng)聯(lián)機(jī)幫助help顯示指定命令36基礎(chǔ)編程基礎(chǔ)編程37編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)語句4程序設(shè)計(jì)技巧簡介5編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)38用Matlab語言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab
提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab
語言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。
M文件根據(jù)調(diào)用方式的不同可以分為兩類:
Script:腳本文件/命令文件
Function:函數(shù)文件M文件
M
文件以.m
為擴(kuò)展名。用Matlab語言編寫的程序稱為M文件。M文39
M
文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個(gè)M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件M文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,40程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控制流選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if
語句和switch
語句。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控41關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=
的區(qū)別關(guān)系操作符能用來比較兩個(gè)同樣大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。關(guān)系運(yùn)算符關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等42&與(ElementwiseAND)|或(ElementwiseOR)~
非xor(x,y)
異或邏輯運(yùn)算邏輯運(yùn)算符A
&
B
等價(jià)于and(A,B)A
|
B
等價(jià)于or(A,B)
~
A
等價(jià)于not(A)&與(ElementwiseAND)|或(El43例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時(shí)輸入的字符串不要加單引號(hào)!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')44disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>
B=[123;456;789];>>
disp(B)數(shù)據(jù)輸出disp數(shù)據(jù)的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>45單分支結(jié)構(gòu)ifexpression
(條件)
statements(語句組)endif條件語句ifexpression(條件)
statements1(語句組1)else
statements2(語句組2)end雙分支結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression(條件)if條件語46數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有%e(采用科學(xué)計(jì)算形式)
%f(采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\t
(制表符)\b
(退格)
\\
(反斜桿)
%%
(百分號(hào))
數(shù)據(jù)輸出fprintffprintf(fid,format47數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:
format
中的輸出格式要與輸出變量一一對(duì)應(yīng)數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為48function
[out1,out2,…]=函數(shù)名(in1,in2,…)%注釋說明部分(可選)函數(shù)體語句(必須)
第一行為引導(dǎo)行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭
)當(dāng)輸出行參多于一個(gè)時(shí),用方括號(hào)括起來函數(shù)必須是一個(gè)單獨(dú)的M文件函數(shù)文件名必須與函數(shù)名一致以百分號(hào)開始的語句為注釋語句函數(shù)文件函數(shù)文件由function
語句引導(dǎo)function[out1,out2,…]=函數(shù)名(in149函數(shù)文件舉例myfun.mfunction
[x1,x2]=myfun(a,b,c)temp=sqrt(b^2-4*a*c);x1=(-b+temp)/2/a;x2=(-b-temp)/2/a;函數(shù)文件舉例myfun.mfunction[x1,x2]50函數(shù)調(diào)用的一般格式輸出實(shí)參列表=函數(shù)名(輸入實(shí)參列表)函數(shù)調(diào)用函數(shù)調(diào)用的一般格式輸出實(shí)參列表=函數(shù)名(輸入實(shí)參列表)函數(shù)51子函數(shù)functionavg=fun(x)%主函數(shù)
n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函數(shù)a=sum(x)/n;子函數(shù)functionavg=fun(x)%主函數(shù)52M文件的編輯與路徑設(shè)置進(jìn)入MATLAB的Editor/Debugger窗口來編輯程序在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。
綠色:注解;黑色:程序主體;紅色:屬性值的設(shè)定;藍(lán)色:控制流程。在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑M文件的編輯與路徑設(shè)置進(jìn)入MATLAB的Editor/Deb53程序設(shè)計(jì)技術(shù)程序出錯(cuò)主要為兩類:1)格式錯(cuò)誤,如缺‘(’或‘)’等,在運(yùn)行時(shí)可檢測(cè)出大多數(shù)該類錯(cuò)誤,并指出錯(cuò)在哪一行。2)算法錯(cuò)誤,邏輯上的錯(cuò)誤,不易查找,遇到此類錯(cuò)誤時(shí)需耐心。程序設(shè)計(jì)技術(shù)程序出錯(cuò)主要為兩類:54程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成。
順序結(jié)構(gòu)M文件控制流按排列順序依次執(zhí)行各條語句,直到程序的最后。這是最簡單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計(jì)算或處理等。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜55選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if
語句和switch
語句。選擇結(jié)構(gòu)選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。56ifexpression1(條件1)
statements1(語句組1)elseifexpression2(條件2)
statements2(語句組2)
......
elseifexpressionm(條件m)
statementsm(語句組m)else
statements(語句組)end多分支結(jié)構(gòu)if條件語句ifexpression1(條件1)多分支結(jié)構(gòu)if條57forvariable=expression
statement(循環(huán)體)end循環(huán)變量循環(huán)結(jié)構(gòu)whileexpression(條件)
statement(循環(huán)體)endforvariable=expression循環(huán)變量循環(huán)結(jié)58for循環(huán)【練習(xí)】一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。for循環(huán)【練習(xí)】一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則59舉例fork=1:1:nx0=x1;x1=x0-f(x0)/df(x0);end
數(shù)值穩(wěn)定性實(shí)驗(yàn):fori=1:1:8fori=8:-1:1
…………
end
end
迭代法求根,線性方程組迭代法求解,常微分方程數(shù)值解等舉例fork=1:1:n數(shù)值穩(wěn)定性實(shí)驗(yàn):迭代法求根,線60循環(huán)語句可以嵌套使用while循環(huán)whileexpression(條件)
statement(循環(huán)體)end不能在for循環(huán)體內(nèi)改變循環(huán)變量的值為了提高代碼的運(yùn)行效率,應(yīng)盡可能提高代碼的向量化程度,避免
for循環(huán)的使用如果預(yù)先就知道循環(huán)的次數(shù),則可以采用for循環(huán);否則,如果預(yù)先無法確定循環(huán)的次數(shù),則可以使用while循環(huán)。循環(huán)語句可以嵌套使用while循環(huán)whileexpre61while循環(huán)舉例【例】Fibonacci數(shù)組的元素滿足Fibonacci規(guī)則:且。現(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=3;a(i)=a(i-1)+a(i-2);whilea(i)<=10000i=i+1; a(i)=a(i-1)+a(i-2);endi,a(i),while循環(huán)舉例【例】Fibonacci數(shù)組的元素滿足Fi62
break
和
continue
break
語句用于終止循環(huán)的執(zhí)行,即跳出最內(nèi)層循環(huán)
continue
語句用于結(jié)束本次循環(huán),進(jìn)行下一次循環(huán)
break
和continue
一般與if
語句配合使用其它流控制語句
return
return
語句用于退出正在運(yùn)行的腳本或函數(shù),通常用在函數(shù)文件中。break和continuebreak語句用于終止63continue語句【例】把100到120之間的能被7整除的整數(shù)輸出。fori=100:120
ifrem(i,7)~=0
continue
endiendcontinue語句【例】把100到120之間的能被7整除的64break語句【例】輸出100到120之間第一個(gè)能被7整除的整數(shù)fori=100:120
ifrem(i,7)~=0
continue
endibreakendbreak語句【例】輸出100到120之間第一個(gè)能被7整除的65return語句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);return語句functionoutput=fact66程序示例【例】分段函數(shù)的最基本實(shí)現(xiàn)。程序示例【例】分段函數(shù)的最基本實(shí)現(xiàn)。67數(shù)值計(jì)算方法課程(運(yùn)用Matlab)課件68根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。switchexpression(表達(dá)式)
casevalue1(表達(dá)式1)
statement1(語句組1)
casevalue2(表達(dá)式2)
statement2(語句組2)
......casevaluem
(表達(dá)式m)
statementm(語句組m)
otherwise
statement(語句組)endswitch語句根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。switche69首先由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)[1,100]之間的一個(gè)整數(shù),然后由用戶猜測(cè)所產(chǎn)生的這個(gè)數(shù)。根據(jù)用戶猜測(cè)的情況給出不同的提示,如果猜測(cè)的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“
Low”
,等于則顯示“Youwon!”,同時(shí)退出游戲。用戶最多有7次機(jī)會(huì)。上機(jī)作業(yè)猜數(shù)游戲首先由計(jì)算機(jī)隨機(jī)產(chǎn)生一個(gè)[1,100]之間的一個(gè)整數(shù),然70Matlab繪圖Matlab繪圖71Matlab二維作圖
plot(x,y)基本形式x,y都是向量,則以x中元素為橫坐標(biāo),y中元素為縱坐標(biāo)作平面曲線。此時(shí)x,y必須具有相同長度。x,y都是矩陣,則將x的列和y中相應(yīng)的列相組合,繪制多條平面曲線。此時(shí)x,y必須具有相同的大小。x是向量,y是矩陣,若x的長度與y的行數(shù)相等,則將x與y中的各列相對(duì)應(yīng),繪制多條平面曲線;否則,若x的長度與y的列數(shù)相等,則將x與y中的各行相對(duì)應(yīng),繪制多條平面曲線。此時(shí)x的長度必須等于y的行數(shù)或列數(shù)。Matlab二維作圖plot(x,y)基本形式x,72
點(diǎn)和線的基本屬性圖形的屬性
plot(x,y,string)其中string
是用單引號(hào)括起來的字符串,用來指定圖形的屬性(點(diǎn)、線的形狀和顏色)屬性可以全部指定,也
可以只指定其中某幾個(gè)排列順序任意紅色、虛線、離散點(diǎn)用加號(hào)藍(lán)色、點(diǎn)劃線
離散點(diǎn)為菱形黑色、實(shí)線
離散點(diǎn)用星號(hào)>>
x=[0:0.2:2*pi];>>
plot(x,cos(x));>>
plot(x,cos(x),’r+:’);>>
plot(x,cos(x),’bd-.’);>>
plot(x,cos(x),’k*-’);點(diǎn)和線的基本屬性圖形的屬性plot(x,y,string73同時(shí)繪制多個(gè)函數(shù)圖像
plot(x1,y1,s1,x2,y2,s2,...,xn,yn,sn)屬性選項(xiàng)可以省略等價(jià)于:holdonplot(x1,y1,s1)plot(x2,y2,s2)...plot(xn,yn,sn)同時(shí)繪制多個(gè)函數(shù)圖像plot(x1,y1,s1,x2,y74圖形的基本屬性線型點(diǎn)標(biāo)記顏色-
實(shí)線:
虛線-.
點(diǎn)劃線--
間斷線.
點(diǎn)o
小圓圈x
叉子符+
加號(hào)*
星號(hào)s
方格d
菱形^
朝上三角v
朝下三角>
朝右三角<
朝左三角p
五角星h
六角星y
黃色
m
品紅色
c青色r紅色g綠色b藍(lán)色w白色k黑色help
plot
查看圖形的基本屬性線型點(diǎn)標(biāo)記顏色-實(shí)線.點(diǎn)y黃75圖形的其他屬性標(biāo)題title(’text’)坐標(biāo)軸標(biāo)注xlabel(’text’)
或
ylabel(’text’)添加圖例legend(string1,string2,...)圖形的其他屬性標(biāo)題title(’text’)坐標(biāo)軸標(biāo)注x76其他相關(guān)命令保持當(dāng)前窗口的圖像holdon或
holdoff新建繪圖窗口figure(n)顯示網(wǎng)格gridon或
gridoff其他相關(guān)命令保持當(dāng)前窗口的圖像holdon或hold77其它調(diào)用方式:axisauto自動(dòng)模式,使得圖形的坐標(biāo)滿足圖中的一切元素axisequal各坐標(biāo)軸采用等長刻度axissquare使繪圖區(qū)域?yàn)檎叫蝍xison/off恢復(fù)/取消對(duì)坐標(biāo)軸的一切設(shè)置axismanual以當(dāng)前的坐標(biāo)限制圖形的繪制(多圖時(shí))……更多參見axis的聯(lián)機(jī)幫助坐標(biāo)軸控制axis([xmin,xmax,ymin,ymax,zmin,zmax])作用:控制坐標(biāo)軸的顯示范圍
坐標(biāo)軸控制命令:axis其它調(diào)用方式:axisauto自動(dòng)模式,使78圖形的其他屬性>>
x=-pi:pi/10:pi;>>
y=sin(x);>>
plot(x,y,'rh:','linewidth',2,...'markeredgecolor','b',...'markerfacecolor','g')例:
線條的粗細(xì),字體大小,坐標(biāo)軸屬性等。linewidth:指定線條的粗細(xì)markeredgecolor:指定標(biāo)記的邊緣色markerfacecolor:指定標(biāo)記表面的顏色注:1)屬性與屬性的值是成對(duì)出現(xiàn)的2)更多屬性參見plot的聯(lián)機(jī)幫助圖形的其他屬性>>x=-pi:pi/10:pi;例:線條79數(shù)值分析實(shí)驗(yàn)選講牛頓迭代法實(shí)驗(yàn)2微分方程數(shù)值解實(shí)驗(yàn)3數(shù)值積分實(shí)驗(yàn)4數(shù)值穩(wěn)定性實(shí)驗(yàn)1數(shù)值分析實(shí)驗(yàn)選講牛頓迭代法實(shí)驗(yàn)2微分方程數(shù)值解實(shí)驗(yàn)3數(shù)值積分80數(shù)值穩(wěn)定性實(shí)驗(yàn)數(shù)值穩(wěn)定性實(shí)驗(yàn)81教材第6頁例1.1例:計(jì)算公式一:記為則初始誤差教材第6頁例1.1例:計(jì)算公式一:記為則初始誤差82Ans=0.1820000000000.0900000000000.0500000000000.083333333333-0.1666666666671.033333333333-5.00000000000025.142857142858-125.589285714292Ans=83例:計(jì)算公式二:例:計(jì)算公式二:84S1=0.182321559771430.088392201142860.058038994285710.043138361904760.034308190476190.028459047619050.024371428571430.021000000000000.02000000000000S1=85n00.1823210.1820.182310.0883920.0900.0883920.0580390.0500.05803830.0431380.0830.04313840.034306-0.16660.03430850.0284681.03330.02845960.024324-5.00000.0243770.02123625.14280.02180.018836-125.58920.020n00.1823210.1820.182310.08839286
選用數(shù)值穩(wěn)定性的算法計(jì)算思考與練習(xí)提示:選用數(shù)值穩(wěn)定性的算法計(jì)算思考與練習(xí)提示:87牛頓迭代法實(shí)驗(yàn)牛頓迭代法實(shí)驗(yàn)88教材第200頁例1.1
203頁例7.8教材第200頁例1.1203頁例7.889教材第200頁例1.1例:求下面方程的一個(gè)根,其中控制精確度tol=10^(-8).教材第200頁例1.1例:求下面方程的一個(gè)根,其中控制90調(diào)用結(jié)果若取初始值為1:>>[x1,n]=mynewton(1,1e-8)x1=0.60259620356652n=
7若取初始值為0:>>[x1,n]=mynewton(0,1e-8)x1=0.60259620356652n=27
調(diào)用結(jié)果91調(diào)用結(jié)果2>>[x1,n]=mynewton(1,1e-6);第1次迭代值為:0.82731056第2次迭代值為:0.69235833第3次迭代值為:0.62007843第4次迭代值為:0.60334207第5次迭代值為:0.60259760第6次迭代值為:0.60259620第7次迭代值為:0.60259620共迭代7次求得的近似根x*=:0.60259620調(diào)用結(jié)果2>>[x1,n]=mynewton(1,1e-692微分方程數(shù)值解實(shí)驗(yàn)微分方程數(shù)值解實(shí)驗(yàn)93教材第248頁例9.2教材第248頁例9.294調(diào)用結(jié)果調(diào)用結(jié)果95數(shù)值積分實(shí)驗(yàn)數(shù)值積分實(shí)驗(yàn)96MATLAB快速入門
編程環(huán)境1編程入門2繪圖3MATLAB快速入門編程環(huán)境1編程入門2繪圖397Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)等功能,被廣泛應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和畢業(yè)設(shè)計(jì)。Matlab功能強(qiáng)大、簡單易學(xué)、編程效率高,深受廣大科技工作者的歡迎。
Matlab是一種廣泛應(yīng)用于工程計(jì)算及數(shù)值分析領(lǐng)域的新型高級(jí)語言,現(xiàn)已成為國際公認(rèn)的最優(yōu)秀的工程應(yīng)用開發(fā)環(huán)境。Matlab簡介Matlab提供了強(qiáng)大的科學(xué)計(jì)算、靈活的98感受MatlabA=magic(3),det(A),inv(A),eig(A)
求的根f(x)=x*exp(x^2)
的10次導(dǎo)數(shù),在區(qū)間【0,1】上的積分等運(yùn)算x=symsxf=x*exp(x^2)
diff(f,x,10)int(f,x,0,1)
繪圖感受MatlabA=magic(3),det(A),inv99Matlab具有很強(qiáng)的數(shù)值計(jì)算功能
Matlab以矩陣作為數(shù)據(jù)操作的基本單位,但無需預(yù)先指定矩陣維數(shù)(動(dòng)態(tài)定維)提供十分豐富的數(shù)值計(jì)算函數(shù),方便計(jì)算,提高效率
簡便易學(xué):Matlab命令與數(shù)學(xué)中的符號(hào)、公式非常接近,可讀性強(qiáng),容易掌握Matlab是一個(gè)交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結(jié)果Matlab:MatrixLaboratryMatlab具有很強(qiáng)的數(shù)值計(jì)算功能Matlab以矩陣100Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大Matlab的編程功能Matlab簡單易學(xué)、編程效率高。Matlab的繪圖功能強(qiáng)大Matlab提供豐富的繪圖命令,
很方便實(shí)現(xiàn)數(shù)據(jù)的可視化Matlab豐富的工具箱(toolbox)根據(jù)專門領(lǐng)域中的特殊需要而設(shè)計(jì)的各種可選工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…
…Matlab的特點(diǎn)與功能Matlab符號(hào)計(jì)算功能強(qiáng)大101Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面上的Matlab快捷圖標(biāo)使用Windows“開始”菜單→程序→MATLAB7.0→MATLAB7.0
Matlab系統(tǒng)的退出在Matlab主窗口File
菜單中選擇ExitMatlab
命令在Matlab命令窗口輸入exit或quit
命令單擊Matlab主窗口的“關(guān)閉”按鈕注:在任何時(shí)候,只要按ctrl+c,MATLAB將停止運(yùn)行的所有工作Matlab的基本用法Matlab系統(tǒng)的啟動(dòng)雙擊桌面102Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入命令的歷史記錄命令提示符Matlab的工作界面命令窗口當(dāng)前工作目錄當(dāng)前工作空間輸入103Matlab的命令窗口
交互式的命令執(zhí)行方式在CommandWindow內(nèi)的提示符(>>)之后輸入運(yùn)算式,并按Enter鍵即可缺省變量名「ans」若不想在屏幕上輸出結(jié)果,可以在語句最后加分號(hào)cos(0),2^10,2+4iA=[123;246;369]det(A)t=0:pi/100:2*pi;y=sin(t);plot(t,y,'r*')Matlab的命令窗口交互式的命令執(zhí)行方式在Comman104變量命名原則Matlab變量以字母開頭:x1,y,千萬不要以數(shù)字開頭
后面可以跟字母、數(shù)字
和下劃線變量名稱區(qū)分字母的
大小
寫,比如Abc和abc不同字母間不可留空格,可以用下劃線math_score
Matlab語句的通常形式變量=表達(dá)式續(xù)行符…的作用變量命名原則Matlab變量以字母開頭:x1,y,千萬105系統(tǒng)預(yù)定義變量Matlab變量
pi
圓周率
inf/Inf無窮大
nan/NaN
Not-a-Number,一個(gè)不定值,如0/0
eps浮點(diǎn)運(yùn)算相對(duì)精度特殊變量
ans
i/j
虛部單位,即應(yīng)盡量避免給系統(tǒng)預(yù)定義變量重新賦值!系統(tǒng)預(yù)定義變量Matlab變量pi圓周率i106
數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)默認(rèn)是雙精度實(shí)數(shù),表示方法同
C語言3,-9,0.4,1.603e-12,3.23e+20
浮點(diǎn)運(yùn)算的相對(duì)誤差為
eps
浮點(diǎn)數(shù)表示范圍為:10-308
~10308
復(fù)數(shù)的輸入
z=3+4i
(4與i之間不能有空格)
z=3+4*i數(shù)與算術(shù)表達(dá)式Matlab數(shù)值運(yùn)算Matlab中的數(shù)107數(shù)學(xué)運(yùn)算符
+
加法Matlab數(shù)值運(yùn)算
-
減法
*
乘法
/和
\
除法(右除和左除)
^
冪運(yùn)算.*./.\.^
點(diǎn)運(yùn)算數(shù)學(xué)運(yùn)算符+加法Matlab數(shù)值運(yùn)算-減法108常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)exp自然指數(shù)函數(shù)cos余弦函數(shù)pow22的冪tan正切函數(shù)abs絕對(duì)值函數(shù)asin反正弦函數(shù)angle復(fù)數(shù)的幅角acos反余弦函數(shù)real復(fù)數(shù)的實(shí)部atan反正切函數(shù)imag復(fù)數(shù)的虛部sinh雙曲正弦函數(shù)conj復(fù)數(shù)共軛運(yùn)算cosh雙曲余弦函數(shù)rem求余數(shù)或模運(yùn)算常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義sin正弦函數(shù)e109函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模除求余asinh反雙曲正弦函數(shù)fix向零方向取整acosh反雙曲余弦函數(shù)floor不大于自變量的最大整數(shù)atanh反雙曲正切函數(shù)ceil不小于自變量的最小整數(shù)sqrt平方根函數(shù)round四舍五入到最鄰近的整數(shù)log自然對(duì)數(shù)函數(shù)sign符號(hào)函數(shù)log10常用對(duì)數(shù)函數(shù)gcd最大公因子log2以2為底的對(duì)數(shù)函數(shù)lcm最小公倍數(shù)常用數(shù)學(xué)函數(shù)函數(shù)名含義函數(shù)名含義tanh雙曲正切函數(shù)mod模110簡單實(shí)例練習(xí):①求29的自然對(duì)數(shù)和無理數(shù)e的值②簡單實(shí)例練習(xí):111矩陣的基礎(chǔ)操作矩陣的基礎(chǔ)操作112
矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>
A=[123;456;789]矩陣同一行中的元素之間用空格或逗號(hào)分隔矩陣行與行之間用分號(hào)分開直接輸入法中,分號(hào)可以用回車代替矩陣Matlab的操作對(duì)象是矩陣矩陣的直接輸入矩陣用方括號(hào)“[]”括起例:>>A=113矩陣下標(biāo)矩陣下標(biāo)114單個(gè)元素的引用例:>>
A(2,3)矩陣元素的引用利用小括弧和元素所在的位置(下標(biāo))x(i):向量x中的第i個(gè)元素A(i,j):矩陣A中的第i行,第j列元素單個(gè)元素的引用例:>>A(2,3)矩陣元素的引用利用小括115矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)A的第i行第j列元素
A(:,k)A的第k列
A(k,:)A的第k行
A(:,k:m)A的第k到第m列組成的子矩陣A(end,end)A的最后一行最后一列如何獲得由A的第一、三行和第一、二列組成的子矩陣?自己動(dòng)手矩陣操作提取矩陣的部分元素:冒號(hào)運(yùn)算符A(i,j)116矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素A(12)%查詢第12個(gè)元素A([914],[1015])%思考之A(:,4)%查詢第4列元素A(4,:)%查詢第4行元素A(end,:)%最后一行元素A(find(A>5))%查詢大于5的元素A(2,3)=5%重新賦值第2行3列元素為5矩陣的各種處理A(2,3)%查詢第2行第3列所對(duì)應(yīng)的元素117
向量與矩陣的生成向量與矩陣的生成
向量的生成
直接輸入:a=[1,2,3,4]冒號(hào)創(chuàng)建:x=a:step:b
從矩陣中抽取行或列生成線性等分向量:x=linspace(a,b,n)
x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的點(diǎn)x4=a+h/2:h:b-h/2;%4倍的點(diǎn)向量與矩陣的生成向量與矩陣的生成向量的生成直接輸入:118大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>
A=[A;111213]在原矩陣的下方加一行如何在原矩陣的右邊添加一列?
已知矩陣A和行向量b,如何得到矩陣大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>A=119常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m
行n
列的零矩陣,m=n
時(shí)可簡寫為zeros(n)ones(m,n)生成一個(gè)m行n列的元素全為1的矩陣,
m=n
時(shí)可寫為ones(n)eye(m,n)生成一個(gè)主對(duì)角線全為1的m
行n
列矩陣,
m=n
時(shí)可簡寫為eye(n),即為n
維單位矩陣diag(A)diag(x)A是矩陣,則diag(A)為A的主對(duì)角線向量x是向量,diag(x)產(chǎn)生以x為主對(duì)角線的對(duì)角矩陣rand(m,n)產(chǎn)生0~1間均勻分布的隨機(jī)矩陣m=n
時(shí)簡寫為rand(n)randn(m,n)產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣
m=n
時(shí)簡寫為randn(n)常見矩陣生成函數(shù)zeros(m,n)生成一個(gè)m行n列120矩陣操作查看矩陣的大小:size
size(A)
列出矩陣A的行數(shù)和列數(shù)
size(A,1)返回矩陣A的行數(shù)
size(A,2)返回矩陣A的列數(shù)例:>>
A=[123;456]>>
size(A)>>
size(A,1)>>
size(A,2)
length(x)返回向量X的長度
length(A)等價(jià)于max(size(A))矩陣操作查看矩陣的大小:sizesize(A)列出121逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:det(A)
要求A為方陣矩陣的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)逆矩陣與行列式計(jì)算矩陣的逆矩陣:inv(A)矩陣的行列式:d122矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間不能有空格!
數(shù)組運(yùn)算包括:點(diǎn)乘、點(diǎn)除、點(diǎn)冪
相應(yīng)的數(shù)組運(yùn)算符為:“.*”,“./”,“.\”和“
.^”例:>>
A=[123;456];B=[321;654];>>
C=A.*B;D=A./B;E=A.\B;F=A.^B;矩陣的數(shù)組運(yùn)算數(shù)組運(yùn)算:對(duì)應(yīng)元素進(jìn)行運(yùn)算點(diǎn)與算術(shù)運(yùn)算符之間123數(shù)與數(shù)組的點(diǎn)冪x.^y
=[1^4,2^5,3^6]=[1,32,729]
x.^2
=[1^2,2^2,3^2]=[1,4,9]
2.^x
=
?例:x=[123];y=[456];數(shù)與數(shù)組的點(diǎn)冪x.^y=[1^4,2^5,3^6]=[1,124矩陣的“除法”
矩陣的除法:/、\右除和左除
若A可逆方陣,則A\B
<==>A的逆左乘B<==>inv(A)*BB/A
<==>A的逆右乘B<==>B*inv(A)X=A\B<==>A*X=BX=B/A<==>X*A=B通常,矩陣除法可以理解為當(dāng)A和B行數(shù)相等時(shí)即可進(jìn)行左除當(dāng)A和B列數(shù)相等時(shí)即可進(jìn)行右除例:設(shè)A、B滿足關(guān)系式:AB=2B+A,求B。其中A=[301;110;014]。矩陣的“除法”矩陣的除法:/、\右除和左除若A可125向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總乘積mean平均值std標(biāo)準(zhǔn)差median中位數(shù)sort排序dot數(shù)量積cross向量積例:A=magic(3)或A=1:5%運(yùn)算對(duì)向量或矩陣都適用B=mean(A)C=sum(A)向量特殊運(yùn)算介紹min最小值sum總和max最大值prod總126矩陣操作矩陣的上、下三角陣,對(duì)角陣
triu(A,k)uppertriangularpart上三角
tril(A,k)lowertriangularpart下三角矩陣的旋轉(zhuǎn)
fliplr(A)
左右旋轉(zhuǎn)
flipud(A)
上下旋轉(zhuǎn)
rot90(A)
逆時(shí)針旋轉(zhuǎn)90度;
rot90(A,k)逆時(shí)針旋轉(zhuǎn)k×90
度矩陣操作矩陣的上、下三角陣,對(duì)角陣triu(A,k)127變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量
save
將所有變量存入文件matlab.mat
savemydata
將所有變量存入指定文件mydata.mat存儲(chǔ)指定的變量
savemydata.mat
將所有變量存入文件mydata.matsave
文件名
變量名列表例:>>
savemydataAxz
變量名列表中各變量之間用空格分隔。變量的存儲(chǔ)存儲(chǔ)當(dāng)前工作空間中的變量save將所有變量128變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間
loadmydata
載入數(shù)據(jù)文件中的所有變量
loadmydataAx
從數(shù)據(jù)文件中提取指定變量掌握如何從txt文件和excel文件載入數(shù)據(jù)清除當(dāng)前工作空間中的變量
clear清除當(dāng)前工作空間中的所有變量
clearAx
清除指定的變量變量的讀取將數(shù)據(jù)文件中的變量載入當(dāng)前工作空間loadm129輸出格式Matlab的輸出
Matlab以雙精度執(zhí)行所有的運(yùn)算,運(yùn)算結(jié)果可以在屏幕上輸出,同時(shí)賦給指定變量;若無指定變量,則系統(tǒng)會(huì)自動(dòng)將結(jié)果賦給變量“ans”
File菜單,選擇Preferences菜單項(xiàng),可以設(shè)置顯示格式Matlab中數(shù)的輸出格式可以通過format
命令指定format只改變變量的輸出格式,但不會(huì)影響變量的值!輸出格式Matlab的輸出Matlab以雙精度執(zhí)行所130幾個(gè)小技巧
Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)全功能:Tab鍵
可以先輸入命令的前幾個(gè)字符,再按上下鍵縮小搜索范圍用Esc鍵刪除命令行幾個(gè)小技巧Matlab的命令記憶功能:上下箭頭鍵命令補(bǔ)131Matlab幫助系統(tǒng)聯(lián)機(jī)幫助help
顯示指定命令的簡短使用說明例:>>
helpeig
helpsqrt
>>
helphelp
helpelfun
詳細(xì)使用幫助doc
以網(wǎng)頁形式顯示指定命令的幫助頁例:>>
doceig
其它相關(guān)命令helpdesk、helpwin、moreMatlab幫助系統(tǒng)聯(lián)機(jī)幫助help顯示指定命令132基礎(chǔ)編程基礎(chǔ)編程133編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)語句4程序設(shè)計(jì)技巧簡介5編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)134用Matlab語言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab
提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab
語言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。
M文件根據(jù)調(diào)用方式的不同可以分為兩類:
Script:腳本文件/命令文件
Function:函數(shù)文件M文件
M
文件以.m
為擴(kuò)展名。用Matlab語言編寫的程序稱為M文件。M文135
M
文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個(gè)M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件M文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,136程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控制流選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有if
語句和switch
語句。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控137關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=
的區(qū)別關(guān)系操作符能用來比較兩個(gè)同樣大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。關(guān)系運(yùn)算符關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等138&與(ElementwiseAND)|或(ElementwiseOR)~
非xor(x,y)
異或邏輯運(yùn)算邏輯運(yùn)算符A
&
B
等價(jià)于and(A,B)A
|
B
等價(jià)于or(A,B)
~
A
等價(jià)于not(A)&與(ElementwiseAND)|或(El139例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時(shí)輸入的字符串不要加單引號(hào)!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:例:A=input('PleaseinputA:')140disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>
B=[123;456;789];>>
disp(B)數(shù)據(jù)輸出disp數(shù)據(jù)的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>141單分支結(jié)構(gòu)ifexpression
(條件)
statements(語句組)endif條件語句ifexpression(條件)
statements1(語句組1)else
statements2(語句組2)end雙分支結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression(條件)if條件語142數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有%e(采用科學(xué)計(jì)算形式)
%f(采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\t
(制表符)\b
(退格)
\\
(反斜桿)
%%
(百分號(hào))
數(shù)據(jù)輸出fprintffprintf(fid,format143數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:
format
中的輸出格式要與輸出變量一一對(duì)應(yīng)數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為144functio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 02 B動(dòng)量守恒定律 中檔版2025新課改-高中物理-選修第1冊(cè)(21講)
- 臨床門診護(hù)理工作制度
- 法律服務(wù)行業(yè)相關(guān)投資計(jì)劃提議
- 社區(qū)護(hù)理社區(qū)老年人保健
- 護(hù)理專病查房措施
- 物業(yè)公司園林苗木養(yǎng)護(hù)管理綠植病蟲害防治作業(yè)指導(dǎo)書
- 我國大城市交通擁擠對(duì)策及關(guān)鍵技術(shù)研究
- 第二章 科學(xué)認(rèn)識(shí)和科學(xué)問題課件
- 藝教企業(yè)未來規(guī)劃
- 金融行業(yè)培訓(xùn)解決方案分享
- 【初中道法】認(rèn)識(shí)生命說課課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 城鄉(xiāng)生活污水處理環(huán)境影響與風(fēng)險(xiǎn)評(píng)估
- KOL合作合同(可直接使用)
- GB 26920-2024商用制冷器具能效限定值及能效等級(jí)
- 廠房租賃合同范本版(18篇)
- DB22T 5165-2024 建設(shè)工程消防驗(yàn)收現(xiàn)場(chǎng)評(píng)定標(biāo)準(zhǔn)
- 浙江省嵊州市三界片2024-2025學(xué)年七年級(jí)上學(xué)期期中科學(xué)測(cè)試卷
- 2024年度鄉(xiāng)村醫(yī)生資格考試專業(yè)基礎(chǔ)知識(shí)考試題庫及答案(共500套)
- 專題15:現(xiàn)代文閱讀(小說)-2024年中考語文一輪復(fù)習(xí)綜合強(qiáng)化訓(xùn)練解析版
- 能源中國學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 食堂食品定點(diǎn)采購詢價(jià)記錄表
評(píng)論
0/150
提交評(píng)論