版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MATLAB 程式設(shè)計(jì)入門(mén)篇初探MATLAB張智星 清大資工系補(bǔ)充內(nèi)容:方煒 臺(tái)大生機(jī)系12-1使用變數(shù)與基本運(yùn)算一般數(shù)學(xué)符號(hào)運(yùn)算在MATLAB 命令視窗(Command Window)內(nèi)的提示符號(hào)()之後輸入運(yùn)算式,並按入 Enter 鍵即可。例如: (5*2+3.5)/5 ans = 2.7000 若不想讓 MATLAB 每次都顯示運(yùn)算結(jié)果,只需在運(yùn)算式最後加上分號(hào)(;)即可,例如: (5*2+3.5)/5; 1+1 2*3 5.23e12/6.2e5 exp(-3) atan2(-1,2) sin(5)In radians2變數(shù)命名規(guī)則與使用第一個(gè)字母必需是英文字母。字母間不可留空格。最
2、多只能有 31 個(gè)字母,MATLAB 會(huì)忽略多餘字母(在 MATLAB 第 4 版,則是 19 個(gè)字母)。MATLAB 在使用變數(shù)時(shí),不需預(yù)先經(jīng)過(guò)變數(shù)宣告(Variable Declaration)的程序,而且所有數(shù)值變數(shù)均以預(yù)設(shè)的 double 資料型式儲(chǔ)存。3加入註解若要加入註解(Comments),可以使用百分比符號(hào)(%)例如: y = (5*2+3.5)/5; % 將運(yùn)算結(jié)果儲(chǔ)存在變數(shù) y,但不用顯示於螢?zāi)?z = y2 % 將運(yùn)算結(jié)果儲(chǔ)存在變數(shù) z,並顯示於螢?zāi)?z = 7.2900 42-2向量與矩陣的處理MATLAB 中的變數(shù)還可用來(lái)儲(chǔ)存向量(Vectors)及矩陣(Matrix
3、),以進(jìn)行各種運(yùn)算,例如: s = 1 3 5 2;% 注意 的使用,及各數(shù)字間的空白間隔 t = 2*s+1 t = 3 7 11 5 5矩陣的各種處理MATLAB 亦可取出向量中的一個(gè)元素或一部份來(lái)做運(yùn)算,例如: t(3) = 2 % 將向量 t 的第三個(gè)元素更改為 2 t = 3 7 2 5 t(6) = 10% 在向量 t 加入第六個(gè)元素,其值為 10 t = 3 7 2 5 0 10 t(4) = % 將向量 t 的第四個(gè)元素刪除, 代表空集合 t = 3 7 2 0 106建立大小為 m n的矩陣在每一橫列結(jié)尾加上分號(hào)(;),例如: A = 1 2 3 4; 5 6 7 8; 9
4、10 11 12; % 建立 34 的矩陣 A A % 顯示矩陣 A 的內(nèi)容A = 1 2 3 4 5 6 7 8 9 10 11 12 7m x n矩陣的各種處理之一 A(2,3) = 5 % 將矩陣 A 第二列、第三行的元素值,改變?yōu)?5 A = 1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出矩陣 A 的第二橫列、第一至第三直行,並儲(chǔ)存成矩陣 B B = 5 6 58m x n矩陣的各種處理之二 A = A B % 將矩陣 B 轉(zhuǎn)置後、再以行向量併入矩陣 A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2)
5、= % 刪除矩陣 A 第二行(:代表所有橫列,代表空矩陣) A = 1 3 4 5 5 5 8 6 9 11 12 5 9m x n矩陣的各種處理之三 A = A; 4 3 2 1 % 在原矩陣 A 中,加入第四列 A = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A(1 4, :) = % 刪除第一、四列(:代表所有直行,是空矩陣) A = 5 5 8 6 9 11 12 5102-3常用數(shù)學(xué)函數(shù)MATLAB 是一個(gè)科學(xué)計(jì)算軟體,因此可以支援很多常用到的數(shù)學(xué)函數(shù) y = abs(x) % 取 x 的絕對(duì)值 y = sin(x) % 取 x 的正弦值 y = cos(
6、x) % 取 x 的餘弦值 y = tan(x) % 取 x 的正切值 y = exp(x) % 自然指數(shù) exp(x) y = log(x) % 自然對(duì)數(shù) ln(x)sin(pi/4,pi/2,pi)= 0.7071 1.0000 0.000011數(shù)學(xué)函數(shù)cos(x) sin(x) tan(x) sec(x) csc(x) cot(x)acos(x) asin(x) atan(x) atan2(y,x)exp(x) log(x) log(x) is ln(x) log10(x) log2(x) sqrt(x)cosh(x) sinh(x) tanh(x) sech(x) csch(x) co
7、th(x)acosh(x) asinh(x) atanh(x)sign(x) airy(n,x) besselh(n,x) besseli(n,x) besselj(n,x) besselk(n,x)bessely(n,x) beta(x,y) betainc(x,y,z) betaln(x,y) ellipj(x,m) ellipke(x)erf(x) erfc(x) erfcx(x) erfinv(x) gamma(x) gammainc(x,a)gammaln (x) expint(x) legendre(n,x) factorial(x)12常用函數(shù)abs(x)the absolute
8、 value of a number (real or complex)clcclears the command windowceil(x)the nearest integer to x looking toward +1 clear clears all assigned variablesclose allcloses all figure windowsclose 3closes figure window 3fix(x)the nearest integer to x looking toward zerofliplr(A)flip a matrix A, left for rig
9、htflipud(A)flip a matrix A, up for downfloor(x)the nearest integer to x looking toward -1length(a)the number of elements in a vectormod(x,y)the integer remainder of x/y; see online help if x or y are negativerem(x,y)the integer remainder of x/y; see online help if x or y are negativerot90(A)rotate a
10、 matrix A by 90round(x)the nearest integer to xsign(x)the sign of x and returns 0 if x=0size(c)the dimensions of a matrixfloor(1.5,2.7,-1.5)13fprintffprintf( N =%g n,500)fprintf( x =%1.12g n,pi)fprintf( x =%1.10e n,pi)fprintf( x =%6.2f n,pi)fprintf( x =%12.8f y =%12.8f n,5,exp(5)Note: n is the comma
11、nd for a new line.For full information type help fprintf14Colon (:) Commandclear; close all; % close figure windowsx=0:1:10;A=magic(3)B=A(:,2)C=A(2,:)D=A(2,1:2)E=A BF=A;Cdx=.01;x=.5*dx:dx:10-0.5*dx;y=sin(5*x);length(x)length(y)plot(x,y,r-)15MATLAB 也支援複數(shù)運(yùn)算 z=5+4j %複數(shù)z=5+4 ,通常以 i 或 j 代表單位虛數(shù) z= 5.0000
12、+ 4.0000 i z=5+4i %這也是複數(shù)z=5+4 y=angle(z) %複數(shù)z 的相角 y= 0.6747 y = real(z) %複數(shù)z 的實(shí)部 y =imag(z) %複數(shù)z 的虛部 y =conj(z) %複數(shù)z 的共軛複數(shù) y = z %這也是複數(shù)z 的共軛複數(shù) y= 5.0000 - 4.0000 i16Euler Identity 尤拉恆等式 y = exp(j*pi/6) % y= 0.8660 + 0.5000 i17向量矩陣的運(yùn)算有一些函數(shù)是特別針對(duì)向量而設(shè)計(jì) y = min(x) % 向量 x 的極小值 y = max(x) % 向量 x 的極大值 y = m
13、ean(x) % 向量 x 的平均值 y = sum(x) % 向量 x 的總和 y = sort(x) % 向量 x 的排序 y =sqrt(x) % 向量 x 的開(kāi)平方根18sort 指令 a = 92, 95, 58, 75, 69, 82,執(zhí)行 sort 指令: b, index = sort(a) 會(huì)得到 b = 58, 69, 75, 82, 92, 95 及 index = 3, 5, 4, 6, 1, 2其中 index 的每個(gè)元素代表 b 的每個(gè)元素在 a 的位置,滿足 b 等於 a(index) 19線上支援help:用來(lái)查詢已知指令的用法help atan2lookfor
14、:用來(lái)尋找未知的指令。找到所需的指令後,即可用 help 進(jìn)一步找出其用法help elliptic is no helplookfor ellipticwill tell you that you should usehelp ellipkehelpwin 或 helpdesk:產(chǎn)生線上支援視窗,其效果和直接點(diǎn)選 MATLAB 命令視窗工作列的圖示是一樣的。doc:產(chǎn)生特定函數(shù)的線上支援。202-4程式流程控制MATLAB 提供重複迴圈(Loops)及條件判斷(Conditions)等程式流程控制(Flow Control)的指令for 迴圈 For 變數(shù) = 向量 運(yùn)算式; end21流程
15、控制while 迴圈(While-loop) while條件式 運(yùn)算式; endif else end if 條件式 運(yùn)算式; else 運(yùn)算式; end更多內(nèi)容,參閱第16章222-5 m 檔案若要一次執(zhí)行大量的 MATLAB 指令,可將這些指令存放於一個(gè)副檔名為 m 的檔案,並在 指令提示號(hào)()下鍵入此檔案主檔名即可。 pwd % 顯示目前的工作目錄 dir 顯示目前工作目錄的內(nèi)容 cd 可改變工作目錄 type myTest.m % 顯示 myTest.m 的內(nèi)容 myTest % 執(zhí)行 myTest.m“Save and Run” shortcut key, F5.m file中程式太
16、長(zhǎng)可用 連接a=sin(x)*exp(-y)*.log(z)+sqrt(b);更多內(nèi)容,參閱第15章232-6搜尋路徑若要檢視 MATLAB 已設(shè)定的搜尋路徑,鍵入 path 指令即可: path若只要查詢某一特定指令所在的搜尋路徑,可用 which 指令要將目錄加入 MATLAB 的搜尋路徑之最前端,使用 addpath 指令,如 addpath d:matlabbook要將目錄加入 MATLAB 的搜尋路徑之最末,使用 addpath 指令,如 addpath d:matlabbook end要將目錄自 MATLAB 的搜尋路徑移除,使用 rmpath 指令,如 rmpath d:matl
17、abbook 搜尋路徑定義在matlabrc.m 檔案內(nèi),可直接修改該檔案242-7工作空間與變數(shù)的儲(chǔ)存及載入MATLAB 在進(jìn)行各種運(yùn)算時(shí),會(huì)將變數(shù)儲(chǔ)存在記憶體內(nèi),這些儲(chǔ)存變數(shù)的記憶體空間稱為基本工作空間(Base Workspace)或簡(jiǎn)稱工作空間(Workspace)若要檢視現(xiàn)存於工作空間(Workspace)的變數(shù),可鍵入 who若要知道這些變數(shù)更詳細(xì)的資料,可使用 whos 指令25永久變數(shù)i 或 j基本虛數(shù)單位eps系統(tǒng)的浮點(diǎn)精確度inf無(wú)限大nan 或 NaN非數(shù)值 (not a number) 如 0/0pi圓周率realmax系統(tǒng)所能表示的最大數(shù)值realmin系統(tǒng)所能表示的
18、最小數(shù)值nargin函數(shù)的輸入引數(shù)個(gè)數(shù)nargout函數(shù)的輸出引數(shù)個(gè)數(shù)26檢視工作空間變數(shù)的其他方式使用 clear 指令來(lái)清除或刪除工作空間內(nèi)的某一特定或所有變數(shù),以避免記憶體的閒置與浪費(fèi)clear A指令清除變數(shù)Aclear all指令清除所有變數(shù)不加任何選項(xiàng)(Options)時(shí),save 指令會(huì)將工作空間內(nèi)的變數(shù)以二進(jìn)制(Binary)的方式儲(chǔ)存至副檔名為 mat 的檔案,load 指令可讀取儲(chǔ)存的變數(shù)save:將工作空間的所有變數(shù)以8位元大小儲(chǔ)存到名為 matlab.mat 的 二進(jìn)制檔案。-double 可改用16位元大小儲(chǔ)存,-ascii可改用文字檔案格式儲(chǔ)存。save :將工作空
19、間所有變數(shù)儲(chǔ)存到名為 的二進(jìn)制檔案。save x y z:將變數(shù) x、y、z 儲(chǔ)存到名為 的二進(jìn)制檔案。load : 讀取儲(chǔ)存到名為 的所有變數(shù)272-8離開(kāi) MATLAB在命令視窗內(nèi),鍵入 exit 指令。在命令視窗內(nèi),鍵入 quit 指令。直接關(guān)閉 MATLAB 的命令視窗。28寫(xiě)一個(gè) 程式 findN01.m,求 n! realmax的最小n 值請(qǐng)問(wèn) n 值是多少?此時(shí) (n-1)! 的值又是多少?function findN01maxN = 1000; for n=1:maxN value = prod(1:n); if valuerealmax break; end end fpri
20、ntf(n = %dn, n); fprintf(n-1)! = %dn, prod(1:n-1); 29寫(xiě)一個(gè) myFun01.m 來(lái)計(jì)算下列函數(shù) y = 0.5*exp(x/3)-x*x*sin(x) 其中 x 是函數(shù)的輸入,y 是函數(shù)的輸出。 你的函數(shù)必須能夠處理當(dāng) x 是純量或是向量的兩種情況。 此外,請(qǐng)利用下述兩列程式碼來(lái)畫(huà)出此函數(shù)的圖形: function y = myFun01(x)y = 0.5*exp(x/3)-x.*x.*sin(x); x=0:0.1:10; plot(x, myFun01(x); 30寫(xiě)一個(gè) piFun01.m 來(lái)計(jì)算下列級(jí)數(shù) f(n) = 4*(1 -
21、 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + .)其中 n 為函數(shù)的輸入, 代表上述級(jí)數(shù)的項(xiàng)數(shù),級(jí)數(shù)和 f(n) 則是函數(shù)的輸出。當(dāng)n夠大, f(n)趨近pi function out = piFun01(n) % approximate pitotal=0; for i=1:n item = (-1)(i+1)/(2*i-1); total = total+item; end out = 4*total; 31寫(xiě)一個(gè) 遞迴函數(shù) fibo.m 來(lái)計(jì)算 Fibonacci 數(shù)列定義如下:fibo(n+2) = fibo(n+1)+fibo(n) 此數(shù)列的啟始條件:fibo(1)
22、 = 0, fibo(2) = 1.使用 tic 和 toc 指令來(lái)測(cè)量 fibo(25) 的計(jì)算時(shí)間。 function out = fibo(n)% fibo: Fibonacci numberif n=1out=0;return;elseif n=2out=1;return;elseout=fibo(n-1)+fibo(n-2);end32寫(xiě)一個(gè)非遞迴函數(shù) fibo2.m 來(lái)計(jì)算 Fibonacci 數(shù)列Fibonacci 數(shù)列的第 n 項(xiàng)可以直接表示成 fibo2(n)=(1+a)/2(n-1)-(1-a)/2(n-1)/a 其中 a 是 5 的平方根。 請(qǐng)計(jì)算 fibo2(25) 的
23、計(jì)算時(shí)間,並和 fibo(25) 比較。 function out = fibo2(n)% Fibonacci number using an analytic expressionr1=(1+sqrt(5)/2;r2=(1-sqrt(5)/2;out=(r1(n-1)-r2(n-1)/sqrt(5);33請(qǐng)寫(xiě)一個(gè)函數(shù) minxy.m,其功能是由一個(gè)二維矩陣中找出小元素minValue, minIndex = minxy(matrix) 其中 matrix 是一個(gè)二維矩陣,minValue 則是其元素的最小值,而 minIndex 是長(zhǎng)度為 2 的正整數(shù)向量,代表最小值的索引。換句話說(shuō),matrix(minIndex(1), minIndex(2) 的值即是 minValue。請(qǐng)測(cè)試 minValue, minIndex =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高要區(qū)2024年中考語(yǔ)文二模試卷
- 二零二五年度船舶抵押貸款服務(wù)合同3篇
- 二零二五年度教育機(jī)構(gòu)代理招聘合作協(xié)議書(shū)2篇
- 二零二五年度抵押房產(chǎn)買(mǎi)賣(mài)及產(chǎn)權(quán)過(guò)戶委托合同3篇
- 二零二五年度航空貨運(yùn)貨物跟蹤查詢與反饋合同范本3篇
- 二零二五年股東墊資合作與分紅權(quán)益合同協(xié)議3篇
- 2025深圳經(jīng)濟(jì)特區(qū)商品房預(yù)售合同書(shū)
- 二零二五年環(huán)保工程挖機(jī)作業(yè)服務(wù)合同3篇
- 房屋出售委托協(xié)議
- 給排水工程分包合同
- 數(shù)字孿生產(chǎn)業(yè)發(fā)展及軌道交通領(lǐng)域的應(yīng)用研究
- 2024-2025學(xué)年人教版地理七年級(jí)上冊(cè)期末復(fù)習(xí)訓(xùn)練題(含答案)
- 統(tǒng)編版(2024新版)七年級(jí)上冊(cè)道德與法治期末綜合測(cè)試卷(含答案)
- 教育部中國(guó)特色學(xué)徒制課題:基于中國(guó)特色學(xué)徒制的新形態(tài)教材建設(shè)與應(yīng)用研究
- 2023年黑龍江日?qǐng)?bào)報(bào)業(yè)集團(tuán)招聘工作人員考試真題
- 安全管理人員安全培訓(xùn)教材
- 2025年護(hù)理質(zhì)量與安全管理工作計(jì)劃
- (T8聯(lián)考)2025屆高三部分重點(diǎn)中學(xué)12月第一次聯(lián)考評(píng)物理試卷(含答案詳解)
- 工程施工揚(yáng)塵防治教育培訓(xùn)
- 紅薯采購(gòu)合同模板
- 影視后期制作團(tuán)隊(duì)薪酬激勵(lì)方案
評(píng)論
0/150
提交評(píng)論