




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MATLAB快速入門
編程環境1編程入門2繪圖3Matlab簡介Matlab提供了強大的科學計算、靈活的程序設計流程、高質量的圖形可視化與界面設計等功能,被廣泛應用于科學計算、控制系統、信息處理等領域的分析、仿真和畢業設計。Matlab功能強大、簡單易學、編程效率高,深受廣大科技工作者的歡迎。
Matlab是一種廣泛應用于工程計算及數值分析領域的新型高級語言,現已成為國際公認的最優秀的工程應用開發環境。感受MatlabA=magic(3),det(A),inv(A),eig(A)
求的根f(x)=x*exp(x^2)
的10次導數,在區間【0,1】上的積分等運算x=symsxf=x*exp(x^2)
diff(f,x,10)int(f,x,0,1)
繪圖Matlab具有很強的數值計算功能
Matlab以矩陣作為數據操作的基本單位,但無需預先指定矩陣維數(動態定維)提供十分豐富的數值計算函數,方便計算,提高效率
簡便易學:Matlab命令與數學中的符號、公式非常接近,可讀性強,容易掌握Matlab是一個交互式軟件系統輸入一條命令,立即就可以得出該命令的結果Matlab:MatrixLaboratryMatlab的特點與功能Matlab符號計算功能強大Matlab的編程功能Matlab簡單易學、編程效率高。Matlab的繪圖功能強大Matlab提供豐富的繪圖命令,
很方便實現數據的可視化Matlab豐富的工具箱(toolbox)根據專門領域中的特殊需要而設計的各種可選工具箱SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification…
…Matlab的基本用法Matlab系統的啟動雙擊桌面上的Matlab快捷圖標使用Windows“開始”菜單→程序→MATLAB7.0→MATLAB7.0
Matlab系統的退出在Matlab主窗口File
菜單中選擇ExitMatlab
命令在Matlab命令窗口輸入exit或quit
命令單擊Matlab主窗口的“關閉”按鈕注:在任何時候,只要按ctrl+c,MATLAB將停止運行的所有工作Matlab的工作界面命令窗口當前工作目錄當前工作空間輸入命令的歷史記錄命令提示符Matlab的命令窗口
交互式的命令執行方式在CommandWindow內的提示符(>>)之后輸入運算式,并按Enter鍵即可缺省變量名「ans」若不想在屏幕上輸出結果,可以在語句最后加分號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變量以字母開頭:x1,y,千萬不要以數字開頭
后面可以跟字母、數字
和下劃線變量名稱區分字母的
大小
寫,比如Abc和abc不同字母間不可留空格,可以用下劃線math_score
Matlab語句的通常形式變量=表達式續行符…的作用系統預定義變量Matlab變量
pi
圓周率
inf/Inf
無窮大
nan/NaN
Not-a-Number,一個不定值,如0/0
eps
浮點運算相對精度特殊變量
ans
i/j
虛部單位,即應盡量避免給系統預定義變量重新賦值!
數與算術表達式Matlab數值運算Matlab中的數默認是雙精度實數,表示方法同
C語言3,-9,0.4,1.603e-12,3.23e+20
浮點運算的相對誤差為
eps
浮點數表示范圍為:10-308
~10308
復數的輸入
z=3+4i
(4與i之間不能有空格)
z=3+4*i數學運算符
+
加法Matlab數值運算
-
減法
*
乘法
/和
\
除法(右除和左除)
^
冪運算.*./.\.^
點運算常用數學函數函數名含義函數名含義sin正弦函數exp自然指數函數cos余弦函數pow22的冪tan正切函數abs絕對值函數asin反正弦函數angle復數的幅角acos反余弦函數real復數的實部atan反正切函數imag復數的虛部sinh雙曲正弦函數conj復數共軛運算cosh雙曲余弦函數rem求余數或模運算函數名含義函數名含義tanh雙曲正切函數mod模除求余asinh反雙曲正弦函數fix向零方向取整acosh反雙曲余弦函數floor不大于自變量的最大整數atanh反雙曲正切函數ceil不小于自變量的最小整數sqrt平方根函數round四舍五入到最鄰近的整數log自然對數函數sign符號函數log10常用對數函數gcd最大公因子log2以2為底的對數函數lcm最小公倍數常用數學函數簡單實例練習:①求29的自然對數和無理數e的值②矩陣的基礎操作
矩陣的直接輸入矩陣用方括號“[]”括起例:>>
A=[123;456;789]矩陣同一行中的元素之間用空格或逗號分隔矩陣行與行之間用分號分開直接輸入法中,分號可以用回車代替矩陣Matlab的操作對象是矩陣矩陣下標單個元素的引用例:>>
A(2,3)矩陣元素的引用利用小括弧和元素所在的位置(下標)x(i):向量x中的第i個元素A(i,j):矩陣A中的第i行,第j列元素矩陣操作提取矩陣的部分元素:冒號運算符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的第一、三行和第一、二列組成的子矩陣?自己動手矩陣的各種處理A(2,3)%查詢第2行第3列所對應的元素A(12)%查詢第12個元素A([914],[1015])%?A(:,4)%查詢第4列元素A(4,:)%查詢第4行元素A(end,:)%最后一行元素A(find(A>5))%查詢大于5的元素A(2,3)=5%重新賦值第2行3列元素為5
向量與矩陣的生成向量與矩陣的生成
向量的生成
直接輸入:a=[1,2,3,4]
冒號創建:x=a:step:b
從矩陣中抽取行或列生成線性等分向量:x=linspace(a,b,n)
x=linspace(0,1,5)x2=a+h:h:b-h;%2倍的點x4=a+h/2:h:b-h/2;%4倍的點大矩陣可以把小矩陣作為其元素矩陣元素賦值例:>>
A=[A;111213]在原矩陣的下方加一行如何在原矩陣的右邊添加一列?
已知矩陣A和行向量b,如何得到矩陣常見矩陣生成函數zeros(m,n)生成一個m
行n
列的零矩陣,m=n
時可簡寫為zeros(n)ones(m,n)生成一個m行n列的元素全為1的矩陣,
m=n
時可寫為ones(n)eye(m,n)生成一個主對角線全為1的m
行n
列矩陣,
m=n
時可簡寫為eye(n),即為n
維單位矩陣diag(A)diag(x)A是矩陣,則diag(A)為A的主對角線向量x是向量,diag(x)產生以x為主對角線的對角矩陣rand(m,n)產生0~1間均勻分布的隨機矩陣m=n
時簡寫為rand(n)randn(m,n)產生均值為0,方差為1的標準正態分布隨機矩陣
m=n
時簡寫為randn(n)矩陣操作查看矩陣的大小:size
size(A)
列出矩陣A的行數和列數
size(A,1)返回矩陣A的行數
size(A,2)返回矩陣A的列數例:>>
A=[123;456]>>
size(A)>>
size(A,1)>>
size(A,2)
length(x)返回向量X的長度
length(A)等價于max(size(A))逆矩陣與行列式計算矩陣的逆矩陣:inv(A)矩陣的行列式:det(A)
要求A為方陣矩陣的秩:rank(A)例:>>A=[123;456;235];A1=inv(A),d=det(A1),rank(A1)矩陣的數組運算數組運算:對應元素進行運算點與算術運算符之間不能有空格!
數組運算包括:點乘、點除、點冪
相應的數組運算符為:“.*”,“./”,“.\”和“
.^”例:>>
A=[123;456];B=[321;654];>>
C=A.*B;D=A./B;E=A.\B;F=A.^B;數與數組的點冪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];矩陣的“除法”
矩陣的除法:/、\右除和左除
若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通常,矩陣除法可以理解為當A和B行數相等時即可進行左除當A和B列數相等時即可進行右除例:設A、B滿足關系式:AB=2B+A,求B。其中A=[301;110;014]。向量特殊運算介紹min最小值sum總和max最大值prod總乘積mean平均值std標準差median中位數sort排序dot數量積cross向量積例:A=magic(3)或A=1:5%運算對向量或矩陣都適用B=mean(A)C=sum(A)矩陣操作矩陣的上、下三角陣,對角陣
triu(A,k)uppertriangularpart上三角
tril(A,k)lowertriangularpart下三角矩陣的旋轉
fliplr(A)
左右旋轉
flipud(A)
上下旋轉
rot90(A)
逆時針旋轉90度;
rot90(A,k)逆時針旋轉k×90
度變量的存儲存儲當前工作空間中的變量
save
將所有變量存入文件matlab.mat
savemydata
將所有變量存入指定文件mydata.mat存儲指定的變量
savemydata.mat
將所有變量存入文件mydata.matsave
文件名
變量名列表例:>>
savemydataAxz
變量名列表中各變量之間用空格分隔。變量的讀取將數據文件中的變量載入當前工作空間
loadmydata
載入數據文件中的所有變量
loadmydataAx
從數據文件中提取指定變量掌握如何從txt文件和excel文件載入數據清除當前工作空間中的變量
clear清除當前工作空間中的所有變量
clearAx
清除指定的變量輸出格式Matlab的輸出
Matlab以雙精度執行所有的運算,運算結果可以在屏幕上輸出,同時賦給指定變量;若無指定變量,則系統會自動將結果賦給變量“ans”
File菜單,選擇Preferences菜單項,可以設置顯示格式Matlab中數的輸出格式可以通過format
命令指定format只改變變量的輸出格式,但不會影響變量的值!幾個小技巧
Matlab的命令記憶功能:上下箭頭鍵命令補全功能:Tab鍵
可以先輸入命令的前幾個字符,再按上下鍵縮小搜索范圍用Esc鍵刪除命令行Matlab幫助系統聯機幫助help
顯示指定命令的簡短使用說明例:>>
helpeig
helpsqrt
>>
helphelp
helpelfun
詳細使用幫助doc
以網頁形式顯示指定命令的幫助頁例:>>
doceig
其它相關命令helpdesk、helpwin、more基礎編程編程基礎關系與邏輯運算1數據輸入與輸出2函數文件3選擇與循環語句4程序設計技巧簡介5用Matlab語言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構成的,它可以完成某些操作,也可以實現某種算法。事實上,Matlab
提供的內部函數以及各種工具箱,都是利用Matlab
語言開發的M文件。用戶也可以結合自己的工作需要,開發自己的程序或工具箱。
M文件根據調用方式的不同可以分為兩類:
Script:腳本文件/命令文件
Function:函數文件M文件
M
文件以.m
為擴展名。
M
文件是一個文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件程序控制結構有三種:順序結構、選擇結構和循環結構。M文件控制流選擇結構是根據給定的條件成立或不成立,分別執行不同的語句。Matlab
用于實現選擇結構的語句有if
語句和switch
語句。關系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結論是真則返回1,否則返回0注意==與=
的區別關系操作符能用來比較兩個同樣大小的數組,或用來比較一個數組和一個標量,在后一種情況,標量和數組中的每一個元素相比較,比較結果與數組大小一樣。關系運算符&與(ElementwiseAND)|或(ElementwiseOR)~
非xor(x,y)
異或邏輯運算邏輯運算符A
&
B
等價于and(A,B)A
|
B
等價于or(A,B)
~
A
等價于not(A)例:A=input('PleaseinputA:')數據的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數或字符串)數據輸入inputA=input(提示信息,'s')注:此時輸入的字符串不要加單引號!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:disp(X)輸出變量X的值,可以是數值矩陣或字符串>>
B=[123;456;789];>>
disp(B)數據輸出disp數據的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:單分支結構ifexpression
(條件)
statements(語句組)endif條件語句ifexpression(條件)
statements1(語句組1)else
statements2(語句組2)end雙分支結構數據輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數據的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來指定數據輸出時采用的格式,常見的有%e(采用科學計算形式)%f(采用浮點數形式)%g(由系統自動選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\t
(制表符)\b
(退格)
\\
(反斜桿)
%%
(百分號)
數據輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:
format
中的輸出格式要與輸出變量一一對應function
[out1,out2,…]=函數名(in1,in2,…)%注釋說明部分(可選)函數體語句(必須)
第一行為引導行,表示該M文件是函數文件函數名的命名規則與變量名相同(必須以字母開頭
)當輸出行參多于一個時,用方括號括起來函數必須是一個單獨的M文件函數文件名必須與函數名一致以百分號開始的語句為注釋語句函數文件函數文件由function
語句引導函數文件舉例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;函數調用的一般格式輸出實參列表=函數名(輸入實參列表)函數調用子函數functionavg=fun(x)%主函數
n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函數a=sum(x)/n;M文件的編輯與路徑設置進入MATLAB的Editor/Debugger窗口來編輯程序在編輯環境中,文字的不同顏色顯示表明文字的不同屬性。
綠色:注解;黑色:程序主體;紅色:屬性值的設定;藍色:控制流程。在運行程序之前,必須設置好MATLAB的工作路徑程序設計技術程序出錯主要為兩類:1)格式錯誤,如缺‘(’或‘)’等,在運行時可檢測出大多數該類錯誤,并指出錯在哪一行。2)算法錯誤,邏輯上的錯誤,不易查找,遇到此類錯誤時需耐心。程序控制結構有三種:順序結構、選擇結構和循環結構。任何復雜的程序都由這三種基本結構組成。
順序結構M文件控制流按排列順序依次執行各條語句,直到程序的最后。這是最簡單的一種程序結構,一般涉及數據的輸入輸出、數據的計算或處理等。選擇結構是根據給定的條件成立或不成立,分別執行不同的語句。Matlab
用于實現選擇結構的語句有if
語句和switch
語句。選擇結構ifexpression1(條件1)
statements1(語句組1)elseifexpression2(條件2)
statements2(語句組2)
......
elseifexpressionm(條件m)
statementsm(語句組m)else
statements(語句組)end多分支結構if條件語句forvariable=expression
statement(循環體)end循環變量循環結構whileexpression(條件)
statement(循環體)endfor循環【練習】一個三位整數各位數字的立方和等于該數本身則稱該數為水仙花數。輸出全部水仙花數。舉例fork=1:1:nx0=x1;x1=x0-f(x0)/df(x0);end
數值穩定性實驗:fori=1:1:8fori=8:-1:1
…………
end
end
迭代法求根,線性方程組迭代法求解,常微分方程數值解等循環語句可以嵌套使用while循環whileexpression(條件)
statement(循環體)end不能在for循環體內改變循環變量的值為了提高代碼的運行效率,應盡可能提高代碼的向量化程度,避免
for循環的使用如果預先就知道循環的次數,則可以采用for循環;否則,如果預先無法確定循環的次數,則可以使用while循環。while循環舉例【例】Fibonacci數組的元素滿足Fibonacci規則:且。現要求該數組中第一個大于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),
break
和
continue
break
語句用于終止循環的執行,即跳出最內層循環
continue
語句用于結束本次循環,進行下一次循環
break
和continue
一般與if
語句配合使用其它流控制語句
return
return
語句用于退出正在運行的腳本或函數,通常用在函數文件中。continue語句【例】把100到120之間的能被7整除的整數輸出。fori=100:120
ifrem(i,7)~=0
continue
endiendbreak語句【例】輸出100到120之間第一個能被7整除的整數fori=100:120
ifrem(i,7)~=0
continue
endibreakendreturn語句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);程序示例【例】分段函數的最基本實現。根據表達式的不同取值,分別執行不同的語句。switchexpression(表達式)
casevalue1(表達式1)
statement1(語句組1)
casevalue2(表達式2)
statement2(語句組2)
......casevaluem
(表達式m)
statementm(語句組m)
otherwise
statement(語句組)endswitch語句首先由計算機隨機產生一個[1,100]之間的一個整數,然后由用戶猜測所產生的這個數。根據用戶猜測的情況給出不同的提示,如果猜測的數大于產生的數,則顯示“High”
,小于則顯示“
Low”
,等于則顯示“Youwon!”,同時退出游戲。用戶最多有7次機會。上機作業猜數游戲Matlab繪圖Matlab二維作圖
plot(x,y)基本形式x,y都是向量,則以x中元素為橫坐標,y中元素為縱坐標作平面曲線。此時x,y必須具有相同長度。x,y都是矩陣,則將x的列和y中相應的列相組合,繪制多條平面曲線。此時x,y必須具有相同的大小。x是向量,y是矩陣,若x的長度與y的行數相等,則將x與y中的各列相對應,繪制多條平面曲線;否則,若x的長度與y的列數相等,則將x與y中的各行相對應,繪制多條平面曲線。此時x的長度必須等于y的行數或列數。
點和線的基本屬性圖形的屬性
plot(x,y,string)其中string
是用單引號括起來的字符串,用來指定圖形的屬性(點、線的形狀和顏色)屬性可以全部指定,也
可以只指定其中某幾個排列順序任意紅色、虛線、離散點用加號藍色、點劃線
離散點為菱形黑色、實線
離散點用星號>>
x=[0:0.2:2*p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東農工商職業技術學院高職單招(數學)歷年真題考點含答案解析
- 2025年常州工業職業技術學院高職單招職業技能測試近5年常考版參考題庫含答案解析
- 2025年天津濱海職業學院高職單招語文2019-2024歷年真題考點試卷含答案解析
- 2025年天津海運職業學院高職單招職業技能測試近5年常考版參考題庫含答案解析
- 肺炎護理診斷
- 新發展英語(第二版)綜合教程3 課件 Unit 6 Telecommunication
- 戀尚生活 旅 行
- 人教版數學六年級下冊第六章復習(同步練習)
- 人教版數學六年級下冊第一、二單元負數、百分數(二)
- 湖南電子科技職業學院《生物化學(B)》2023-2024學年第二學期期末試卷
- 2024年全國中學生天文知識競賽考試題庫(含答案)
- 會陰穴的穴位刺激對疾病的影響
- 《自然教育》課件-自然游戲
- 部編版語文一年級下冊第六單元大單元教學任務群設計
- 脊柱側彎矯正的七大門派
- DZ/T 0430-2023 固體礦產資源儲量核實報告編寫規范(正式版)
- 全民國家安全教育日知識測試題庫和答案
- 廉潔教育班會.省公開課一等獎全國示范課微課金獎課件
- 2024版醫療器械行業數字化轉型白皮書
- 12 清貧公開課一等獎創新教案
- 第四講:簡單長管的水力計算
評論
0/150
提交評論