


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗項目序號1MATLAB基本操作、實驗目的熟悉MATLAB軟件環(huán)境,掌握命令窗口的使用。、實驗基本知識1、熟悉MATLAB的桌面工具和環(huán)境2、Start菜單ImporWZdWGLIDE(GUIEulCtf)NotctcasHetFdoLTinnpSerecT口okTpDen3blATLABCBhtrd(Neb)ProctirtPageQAieb)WTLBSUlderfcrNEI»WTLAD3uid§rrcrCelWKABBuidsrfcrJova禺IMJiTLABLfliftpler*|J陽師LAEJssteinTsstQiystenrestBsfcop弧rgabcocs
2、sl'3TestRSLltsViev'-導SrajiH<)13HP吶Shortuts址口匸Tods!>productPace(web)®Web1營PrfffirRflr.£)rindri«.HelpDenos三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、MATLAB的啟動及操作界面認識說明有哪幾種啟動的方法;操作界面有哪些窗口;對常用的窗口作些簡單的介紹。?使用Windows的“開始”菜單。?運行MATLAB系統(tǒng)的啟動程序matlab.exe。?利用桌面上的快捷方式。?MATLAB主窗口?命令窗口(CommandWindow)當前目錄窗
3、口(CurrentDirectory)工作空間窗口(Workspace)?命令歷史窗口(CommandHistory)2、下列符號中哪些是MATLAB的合法變量名?用給變量賦值的方法在機器上驗證你的答案(3vars、global、help、My_exp、sin、X+Y、nput、E-4、AbCd、AB_C_。)help,My_exp,sin,AbCd,AB_C_;3、命令窗口的簡單使用1)簡單矩陣的輸入123A=4567892)求12+2X(7-4)十32的算術(shù)運算結(jié)果4、有關(guān)向量、矩陣或數(shù)組的一些運算1 )設(shè)A=15;B=20;求C=A+B與c=a+b?2 )設(shè)A=123;456;789,B
4、=987;654;321;求A*B與A.*B?A*B遵循矩陣運算,A.*B遵循每個對應元素之間進行相乘>>A=Cl23;456;79A=1234S6T89>>E=9S7:i35d:32IJB二呂6S432>>A*Earts=30241884曰曰5413811490>>A-*Ean_s=91621242524211®日3)設(shè)A=10,B=20;求C=A/B與D=AB?»A=10A=10»E=20B=20»C=AB匚二2»CC二0.5000A»|4)設(shè)a=1-23;45-4;5-67請設(shè)計出
5、程序,分別找出小于0的矩陣元素及其位置(單下標、全下標的形式)并將其單下標轉(zhuǎn)換成全下標>>a=1-23;45-4;5-67;/%定義矩陣>>b=a(find(a<0);%找到a中小于零的元素b=-2-6468>>x,y=find(a<0)%找到小于零元素的雙下標>>x,y=ind2sub(size(a),find(a<0)%單下標轉(zhuǎn)換為雙下標在MATLAB命令行窗口運行A=1,2;3,4+i*5,6;7,8;看結(jié)果如何?如果改成運行A=1,2;3,4+i5,6;7,8,結(jié)果又如何?5) 請設(shè)計出程序完成下列計算:a=123;34
6、2;523,求aA2=?,a.A2=?解:>>a=123;342;523;>>aA2%矩陣運算>>a.A2%數(shù)組與矩陣的乘法有一段程序設(shè)計如下,請思考并說明運行結(jié)果及其原因clearX=12;89;36;X(:)解:6) 轉(zhuǎn)化X為列向量使用兩種方法,創(chuàng)建一稀疏矩陣解:1)>>a=eye(5);%創(chuàng)建5階單位矩陣>>sparse(a)%將a構(gòu)造為稀疏矩陣ans=111112)>>data=1222;>>ir=1324;>>jc=1241;>>s=sparse(ir,jc,data,4,4)
7、s=122(2,4)2寫出下列指令的運行結(jié)果>>A=123;B=456;>>C=3.AA27>>D=A.ABD=3272914tsin4、3t若需要計算t-1,1,取間隔為0.01,試計3v'35、已知ye2算出相對應的y值。>>t=-1:0.01:1;>>y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3)%注意要用點乘五、實驗注意事項1、注意區(qū)分大小寫2、注意數(shù)組、矩陣運算的不同之處六、思考題1、MATLAB桌面環(huán)境有幾種樣式?Default:缺省的界面CommandWindowsOnl
8、y:僅包含命令行窗體(CommandWindow)HistoryandCommandWindow:包含兩個窗體命令行窗體(CommandWindow)和命令歷史窗體(CommandHistory),兩個窗體并列在界面中AllTapped:啟動所有MATLAB常用的圖形界面工具AllbutCommandWindowMinimized:CommandWindow窗口顯示,其他的窗口分別疊加在MATLAB窗體下2、如何使窗體浮動出來?又如何使窗體內(nèi)嵌回MATLAB的界面中?在MATLAB默認的圖形窗體環(huán)境下,單擊命令行窗體左上角按鈕«,就可以將MATLAB命令行窗體彈出執(zhí)行“Desktop
9、”菜單下的“DockCurrentDirectory”命令,可將命令行窗口重新嵌入到MATLAB的界面中實驗項目序號2MATLAB運算基礎(chǔ)(一)、實驗目的掌握MATLAB各種表達式的書寫規(guī)則及常用函數(shù)的使用、實驗基本知識1、矩陣和向量的創(chuàng)建方法和訪問方法1)創(chuàng)建方法逐個輸入向量的元素利用運算符一一“:”語法:X=J:INC:K使用函數(shù)linspace禾口logspace語法:x=linspace(x1,x2,n),x=logspace(x1,x2,n)2)訪問方法:利用向量或矩陣的索引來完成相應的操作。矩陣元素的訪問說明A(i,j)訪問矩陣A的第i行第j列上的元素,其中i和j為標量A(I,J)
10、訪問由向量1和J指定的矩陣A中的元素A(i,:)訪問矩陣A中第i行的所有元素A(:,j)訪問矩陣A中第j列的所有元素A(:)訪問矩陣A的所有元素,將矩陣看作一個向量A(l)使用單下標的方式訪問矩陣元素,其中l(wèi)為標量A(L)訪問由向量L指定的矩陣A的元素,向量L中的元素為矩陣元素的單下標數(shù)值2、數(shù)據(jù)類型,以及操作不同數(shù)據(jù)類型數(shù)據(jù)的函數(shù)1)數(shù)據(jù)類型數(shù)據(jù)類型說明字節(jié)數(shù)取值范圍double雙精度數(shù)據(jù)類型8sparse稀疏矩陣數(shù)據(jù)類型N/Asingle單精度數(shù)據(jù)類型4uint8無符號8位整數(shù)1028-1uint16無符號16位整數(shù)2Z16-02-1uint32無符號32位整數(shù)4ZZT"3202
11、-1uint64無符號64位整數(shù)8764-02-1int8有符號8位整數(shù)1Z77T8-22-1int16有符號16位整數(shù)2小1515-22-1int32有符號32位整數(shù)4小31小31.-22-1int64有符號64位整數(shù)8只63只63“-22-12)操作函數(shù)整數(shù)類型的運算函數(shù)函數(shù)說明bitand數(shù)據(jù)位“與”運算bitcmp按照指定的數(shù)據(jù)位數(shù)求數(shù)據(jù)的補碼bitor數(shù)據(jù)位“或”操作bitmax最大的浮點整數(shù)數(shù)值,一般為253-仁9007199254740991bitxor數(shù)據(jù)位“異或”操作bitset將指定的數(shù)據(jù)位設(shè)置為1bitget獲取指定的數(shù)據(jù)位數(shù)值bitshift數(shù)據(jù)位移操建邏輯類型數(shù)據(jù)的函
12、數(shù)函數(shù)logical將任意類型的數(shù)組轉(zhuǎn)變成為邏輯類型數(shù)組,其中,非零元素為真,零元素為假True產(chǎn)生邏輯真值數(shù)組False產(chǎn)生邏輯假值數(shù)組MATLAB的邏輯運算運算符說明&&具有短路作用的邏輯與操作,僅能處理標量|具有短路作用的邏輯或操作,僅能處理標量&元素與操作|元素或操作邏輯非操作xor邏輯異或操作any當向量中的元素有非零元素時,返回真all當向量中的元素都是非零元素時,返回真MATLAB的關(guān)系運算運算符說明運算符說明=等于>大于=不等于<=小于等于<小于>=大于等于格式化字符字符說明%c顯示內(nèi)容為單一的字符%d有符號的整數(shù)%e科學技術(shù)法,
13、使用小寫的字符e%E科學技術(shù)法,使用大寫的字符E%f浮點數(shù)據(jù)%g不定,在%e或者%f之間選擇一種形式%G不定,在%E或者%f之間選擇一種形式%o八進制表示%s字符串%u無符號的整數(shù)%x十六進制表示,使用小寫的字符%X十六進制表示,使用大寫的字符三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、已知A=1234-4;34787;3657,B=13-1;203;3-27,求下列表達式的值:1) A+6B和A2-B+l(I為單位矩陣)A*B和A.*BAA3和A.A3A,B和A(1,3BA22、設(shè)有矩陣A和B,A=12345;678910;1112131415;1617181920;2122232425,
14、B=3016;17-69;023-4;970;413111)求它們的乘積C2)將矩陣C的右下角3x2子矩陣賦給D3、已知A=2310-0.7780;41-45655;325032;6-9.54543.14,取出其前3行構(gòu)成矩陣B,其前兩列構(gòu)成矩陣C,其左下角3x2子矩陣構(gòu)成矩陣D,B與C的乘積構(gòu)成矩陣E,分別求E<D、E&D、E|D、E|D和滿足(A>=10&A<25)的元素的索引。答案:滿足(A>=10&A<25)的元素的索引>>A=2310-780;41-45655;325032;6-549214;>>a=fin
15、d(A>=10&A<25)的功能。左旋:>>rot90(A)ans=053214-786509210-455-542341326右旋:>>rot90(A,3)ans=6324123-545-451092065-781432505、求S=2°+21+22+23+24+210的值4、使用函數(shù),實現(xiàn)矩陣左旋90?;蛴倚?0(提示:禾U用求和函數(shù)與累乘積函數(shù)。)>>a=2*ones(1,10);%生成全為2,個數(shù)為10的行矩陣>>c=sum(b)+1c=20476、用reshape指令生成下列矩陣,并取出方框內(nèi)的數(shù)組元素。5
16、61520254711411224弓313112161718212223答案:>>a=:1:510:-1:6;>>b=:11:25;>>A=reshape(a,5,2):reshape(b,5,3)'%生成矩陣A>>d1=A(2,2:3)>>d2=A(2:4,4)>>d3=A(4:5,1:3)五、實驗注意事項不同的函數(shù)有不同的功能,同一函數(shù)又有不同的用法,注意正確使用各函數(shù)。六、思考題元素的單下標訪問和全下標訪問有何關(guān)聯(lián)之處?實驗項目序號3MATLAB運算基礎(chǔ)(二)、實驗目的掌握MATLAB中有關(guān)字符串、元胞、結(jié)構(gòu)
17、的函數(shù)的使用。、實驗基本知識有關(guān)字符串、元胞、結(jié)構(gòu)的函數(shù)常用的字符串操作函數(shù)函數(shù)說明char創(chuàng)建字符串,將數(shù)值轉(zhuǎn)變成為字符串double將字符串轉(zhuǎn)變成Unicode數(shù)值blanks創(chuàng)建空白的字符串(由空格組成)deblank將字符串尾部的空格刪除ischar判斷變量是否是字符類型strcat水平組合字符串,構(gòu)成更長的字符向量strvcat垂直組合字符串,構(gòu)成字符串矩陣strcmp比較字符串,判斷字符串是否一致strncmp比較字符串前n個字符,判斷是否一致strcmpi比較字符串,比較時忽略字符的大小寫strncmpi比較字符串前n個字符,比較時忽略字符的大小寫findstr在較長的字符串中查
18、尋較短的字符串岀現(xiàn)的索引strfind在第一個字符串中查尋第二個字符串岀現(xiàn)的索引strjust對齊排列字符串strrep替換字符串中的子串strmatch查詢匹配的字符串upper將字符串的字符都轉(zhuǎn)變成為大寫字符lower將字符串的字符都轉(zhuǎn)變成為小寫字符數(shù)字和字符之間的轉(zhuǎn)換函數(shù)函數(shù)說明num2str將數(shù)字轉(zhuǎn)變成為字符串int2str將整數(shù)轉(zhuǎn)變成為字符串mat2str將矩陣轉(zhuǎn)變成為可被eval函數(shù)使用的字符串str2double將字符串轉(zhuǎn)變?yōu)殡p精度類型的數(shù)據(jù)str2num將字符串轉(zhuǎn)變?yōu)閿?shù)字sprintf格式化輸岀數(shù)據(jù)到命令行窗口sscanf讀取格式化字符串不同數(shù)值之間的轉(zhuǎn)換函數(shù)函數(shù)說明hex2n
19、um:將十六進制整數(shù)字符串轉(zhuǎn)變成為雙精度數(shù)據(jù)hex2dec將十六進制整數(shù)字符串轉(zhuǎn)變成為十進制整數(shù)dec2hex:將十進制整數(shù)轉(zhuǎn)變成為十六進制整數(shù)字符串bin2dec將二進制整數(shù)字符串轉(zhuǎn)變成為十進制整數(shù)dec2bin:將十進制整數(shù)轉(zhuǎn)變成為二進制整數(shù)字符串base2dec將指定數(shù)制類型的數(shù)字字符串轉(zhuǎn)變成為十進制整數(shù)dec2base:將十進制整數(shù)轉(zhuǎn)變成為指定數(shù)制類型的數(shù)字字符串格式化字符字符說明%c顯示內(nèi)容為單一的字符%d有符號的整數(shù)%e科學技術(shù)法,使用小寫的字符e%E科學技術(shù)法,使用大寫的字符E%f浮點數(shù)據(jù)%g不定,在%e或者%f之間選擇一種形式%G不定,在%E或者%f之間選擇一種形式%o八進制表
20、示%s字符串%u無符號的整數(shù)%x十六進制表示,使用小寫的字符%X十六進制表示,使用大寫的字符元胞數(shù)組的操作函數(shù)函數(shù)說明cell創(chuàng)建空的元胞數(shù)組cellfun為元胞數(shù)組的每個元胞執(zhí)行指定的函數(shù)celldisp顯示所有元胞的內(nèi)容cellplot利用圖形方式顯示元胞數(shù)組cell2mat將元胞數(shù)組轉(zhuǎn)變成為普通的矩陣mat2cell將數(shù)值矩陣轉(zhuǎn)變成為元胞數(shù)組num2cell將數(shù)值數(shù)組轉(zhuǎn)變成為元胞數(shù)組deal將輸入?yún)?shù)賦值給輸岀cell2struct將元胞數(shù)組轉(zhuǎn)變成為結(jié)構(gòu)struct2cell將結(jié)構(gòu)轉(zhuǎn)變成為元胞數(shù)組iscell判斷輸入是否為元胞數(shù)組在cellfun函數(shù)中可用的函數(shù)函數(shù)說明isempty若元
21、胞元素為空,則返回邏輯真islogical若元胞元素為邏輯類型,則返回邏輯真isreal若元胞元素為實數(shù),則返回邏輯真length元胞元素的長度ndims元胞元素的維數(shù)prodofsize元胞元素包含的元素個數(shù)結(jié)構(gòu)操作函數(shù)函數(shù)說明struct創(chuàng)建結(jié)構(gòu)或?qū)⑵渌麛?shù)據(jù)類型轉(zhuǎn)變成結(jié)構(gòu)fieldnames獲取結(jié)構(gòu)的字段名稱getfield獲取結(jié)構(gòu)字段的數(shù)據(jù)setfield設(shè)置結(jié)構(gòu)字段的數(shù)據(jù)rmfield刪除結(jié)構(gòu)的指定字段isfield判斷給定的字符串是否為結(jié)構(gòu)的字段名稱isstruct判斷給定的數(shù)據(jù)對象是否為結(jié)構(gòu)類型oderfields將結(jié)構(gòu)字段排序三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、求100
22、,999之間能被21整除的數(shù)的個數(shù)(提示:先利用冒號表達式,再利用find和length函數(shù)。)答案:>>t=100:999>>i=find(rem(t,21)=0)>>length(i)ans=432、建立一個字符串向量,刪除其中的大寫字母(提示:利用find函數(shù)和空矩陣。)>>a='dadaAf>>b=find(a>='A'&&a<='Z')>>a(b)=a=dadaf3、寫出使以下這段文字成為字符串的MATLAB指令。注意保持這段文字的格式。在英式用
23、法中,引號通常是單引號,如Fire!'InGBusagequotationmarksareusuallysingle:fire!'答案:>>disp('InGBusagequotationmarksareusuallysingle:"fire!"')4、用結(jié)構(gòu)體數(shù)組來存儲2名學生的基本情況數(shù)據(jù),每名學生的數(shù)據(jù)包括學號、姓名、專業(yè)和3門課程的成績。>>a=struct('num',1,2,'name','mike','hike','major'
24、;,'tele','score',rand(2,1)*100,rand(2,1)*100);1) 5、建立矩陣A并回答有關(guān)問題A1,1=1;A1,2='Brenden'A2,1=reshape(1:9,3,3);A2,2=12,34,2;54,21,3;4,23,67;如何使用訪問的方式將Brenden改寫成BRENDEN?>>A1,2=upper(A1,2)A=1'BRENDEN'3x3double3x3cell2)分別執(zhí)行A(3)=和A3=后,A的值各是多少?并說明原因。>>A3=3x3double3x
25、3cell>>A(3)=A=3x3double3x3cell6、禾U用MATLAB提供的rand函數(shù)和圓整函數(shù)隨機生成4X3整數(shù)矩陣A,進行如下操作1) A各列元素的平均值和中值平均值>>A_mean=mean(A)A_mean=0.50000.75000.7500中值>>A_median=median(A)A_median=0.50001.00001.00002) A的最大元素和最小元素及它們的位置最大值>>A_max=max(max(A)A_max=>>x,y=find(A=A_max)>>A_maxlocal=x(1
26、)y(1)最小值>>A_min=min(min(A)A_min=0>>xx,yy=find(A=A_min)>>A_minlocal=xx(1)yy(1)求A的每行元素的和以及全部元素之和>>A_rsum=sum(A,2)%行的和>>A_sum=sum(sum(A)%全禾口分別對A的每列元素按升序、每行元素按降序排列>>A_rsort=abs(sort(-A,2)五、實驗注意事項字符串函數(shù)的使用細節(jié);對元胞數(shù)組中的元胞的訪問;結(jié)構(gòu)數(shù)組的創(chuàng)建方法。六、思考題訪問元胞數(shù)組的兩種操作符“”和“()”之間有什么不同?使用“”直接獲
27、取元胞數(shù)組的元胞內(nèi)容使用“()”直接訪問元胞數(shù)組的元胞,獲取的數(shù)據(jù)也是一個元胞數(shù)組。實驗項目序號4MATLAB循環(huán)結(jié)構(gòu)程序設(shè)計、實驗目的1、掌握建立和執(zhí)行M文件的方法;2、掌握利用for語句和while語句實現(xiàn)循環(huán)結(jié)構(gòu)的方法。、實驗基本知識MATLAB的M語言文件是純文本格式的文件,MATLAB也提供了一個編輯器,叫作meditor,它也是系統(tǒng)默認的M文件編輯器。運行meditor的方法非常簡單,MATLAB命令行窗口中鍵入下面的指令就可以打開meditor>>edit這時MATLAB將啟動meditor,然后創(chuàng)建一個未命名的空白文件。這時用戶就可以直接在編輯器中鍵入MATLAB指
28、令,開發(fā)M語言文件了。M語言文件可以分為兩類,其中一類是腳本文件,另外一類叫作函數(shù)文件。腳本文件是最簡單的一種M語言文件。所謂腳本文件,就是由一系列的MATLAB指令和命令組成的純文本格式的M文件,執(zhí)行腳本文件時,文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù),執(zhí)行起來就像早期的DOS操作系統(tǒng)的批處理文件一樣,而腳本文件處理的數(shù)據(jù)或者變量必須在MATLAB的公共工作空間中。腳本文件中常用的MATLAB指令指令pause暫停當前M文件的運行,按任意鍵繼續(xù)input等待用戶輸入keyboard暫停當前M文件的運行,開將程序控制權(quán)父還給MATLAB命令行
29、,這時可以正常使用命令行,直到鍵入“return”并按回車鍵后,M文件才繼續(xù)運行return返回當前的函數(shù)或者命令行程序流程控制語句:1、for循環(huán)結(jié)構(gòu)語法:fori=初值:增量:終值語句1語句nend說明:1 )i=初值:終值,則增量為1。2 )初值、增量、終值可正可負,可以是整數(shù)或小數(shù),只須符合數(shù)學邏輯。2、while循環(huán)結(jié)構(gòu)語法:while邏輯表達式循環(huán)體語句end說明:1)while結(jié)構(gòu)依據(jù)邏輯表達式的值判斷是否執(zhí)行循環(huán)體語勾。若表達式的值為真,執(zhí)行循環(huán)體語句一次、在反復執(zhí)行時,每次都要進行判斷。若表達式的值為假,則程序執(zhí)行end之后的語句。2)為了避免因邏輯上的失誤,而陷入死循環(huán),建
30、議在循環(huán)體語句的適當位置加break語句、以便程序能正常執(zhí)行。(執(zhí)行循環(huán)體的次數(shù)不確定;每一次執(zhí)行循環(huán)體后,一定會改變while后面所跟關(guān)系式的值。)3)while循環(huán)也可以嵌套、其結(jié)構(gòu)如下:while邏輯表達式1循環(huán)體語句1while邏輯表達式2循環(huán)體語句2end循環(huán)體語句3end三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、分別使用for循環(huán)語句和while循環(huán)語句找出最小的n值,使得n!>10100并求出n!。要求顯示的結(jié)果為n=70n!=1.197857e+100>1e100或70!=1.197857e+100>1e100程序for:s=1;forn=1:100s=s
31、*n;if(s>10F00)break;endendstr1='n=',num2str(n);str2='n!=',num2str(s);disp(str1)disp(st程序while:n=1;s=1;while(s<=10A100)s=s*n;n=n+1;endstr1='n=',num2str(n-1);str2='n!=',num2str(s);disp(str1)disp(str2)2、已知fi=1,n=1'f2=0,n=2if3=1,n=3fn=fn-1-2fn-2+fn-3,n>3求flf5
32、0中:1)最大值和最小值及它們的位置,各數(shù)之和(最大值給變量MAX,其位置給變量x,最小值給變量MIN,其位置給變量y,各數(shù)之和給變量SUM)。程序:f(1)=1;f(2)=0;f(3)=1;forn=4:50f(n)=f(n-1)-2*f(n-2)+f(n-3);endMAX,x=max(f)%X0da2?oa?o?£?oa?'DD卩?o?MIN,y=min(f)SUM=sum(f)2)正數(shù)、零、負數(shù)的個數(shù)(依次賦值給變量positive,zero,negative)。zero=length(find(f=O)negative=length(find(f<0)3、Fi
33、bonacci數(shù)組的元素滿足Fibonacci規(guī)則:ak+2=ak+ak+1,(k=1,2,3,);且a1=a2=1。請設(shè)計一段程序,求出該數(shù)組中第一個大于10000的元素,要求顯示的結(jié)果為:i=21a(i)=10946或者a(21)=10946程序為:a=;a(1)=1;a(2)=1;fori=1:10000a(i+2)=a(i)+a(i+1);ifa(i)>10000break;endenddisp('i=',num2str(i)五、實驗注意事項1、for語句和while語句的應用場合2、注意輸出格式的要求六、思考題請思考下列兩段程序及其運行結(jié)果,說明原因。1) cl
34、earfori=1:10;x(i)=i.A2;endx(2) clearfori=1:10;x(i)=i.A2endx(i)實驗項目序號5MATLAB選擇結(jié)構(gòu)程序設(shè)計、實驗目的1、掌握建立和執(zhí)行M文件的方法;2、掌握利用if語句和switch語句實現(xiàn)選擇結(jié)構(gòu)的方法。、實驗基本知識MATLAB的M語言文件是純文本格式的文件,MATLAB也提供了一個編輯器,meditor叫作meditor,它也是系統(tǒng)默認的M文件編輯器。運行meditor的方法非常簡單,MATLAB命令行窗口中鍵入下面的指令就可以打開>>edit這時MATLAB將啟動meditor,然后創(chuàng)建一個未命名的空白文件。這時用
35、戶就可以直接在編輯器中鍵入MATLAB指令,開發(fā)M語言文件了。M語言文件可以分為兩類,其中一類是腳本文件,另外一類叫作函數(shù)文件。腳本文件是最簡單的一種M語言文件。所謂腳本文件,就是由一系列的MATLAB指令和命令組成的純文本格式的M文件,執(zhí)行腳本文件時,文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù),執(zhí)行起來就像早期的DOS操作系統(tǒng)的批處理文件一樣,而腳本文件處理的數(shù)據(jù)或者變量必須在MATLAB的公共工作空間中。腳本文件中常用的MATLAB指令指令說明pause暫停當前M文件的運行,按任意鍵繼續(xù)input等待用戶輸入keyboard暫停當前M文件的
36、運行,并將程序控制權(quán)交還給MATLAB命令行,這時可以正常使用命令行,直到鍵入“return”并按回車鍵后,M文件才繼續(xù)運行return返回當前的函數(shù)或者命令行程序流程控制語句:1、if-else-end分支結(jié)構(gòu)語法:if表達式1語句1elseif表達式2(可選)語句2else(可選)語句3endend說明:1)if結(jié)構(gòu)是一個條件分支語句,若滿足表達式的條件,則往下執(zhí)行;若不滿足,則跳出if結(jié)構(gòu)。2)elseif表達式2與else為可選項,這兩條語句可依據(jù)具體情況取舍。3)注意:每一個if都對應一個end,即有幾個if,記就應有幾個end。2、switch-case結(jié)構(gòu)語法:switch表達式
37、case常量表達式1語句組1case常量表達式2語句組2otherwise語句組nend說明:1)switch后面的表達式可以是任何類型,如數(shù)字、字符串等。2)當表達式的值與case后面常量表達式的值相等時,就執(zhí)行這個case后面的語句組如果所有的常量表達式的值都與這個表達式的值不相等時,則執(zhí)行otherwise后的執(zhí)行語句。三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、輸入一個百分制成績,要求輸出成績等級A、B、C、D、E。其中90分100分為A,80分89分為B,70分79為C,60分69分為D,60分以下為E。要求:1)分別用if語句和switch語句實現(xiàn)2)對不合理的成績應輸出出錯信息
38、“輸入的成績不合理”(若成績出現(xiàn)小數(shù),則只能是“.5”)程序switch:score=input('?e?e?°d??3e?ifrem(score,0.5)=0switchscorecasenum2cell(90:0.5:100)disp('?3e?-eA')?acasenum2cell(80:0.5:89)disp('?Uy?3e?"eB')?acasenum2cell(70:0.5:79)casenum2cell(60:0.5:69)disp('?Uy?3e?"eD')?acasenum2cell(0:0
39、.5:59.5)disp('?uy?3e?"yeE')?aotherwisedisp('?e?e?y?3e?')2?o?Iendelsedisp('?e?e?y?3e?-2?o?e?3?D?ey?ue?0.5'end程序if:2、x=input('?:');3、ifrem(x,0.5)=04、if(x<=100&x>=90)5、disp('A')6、elseif(x>=80&x<=89)7、disp('B')8、elseif(x>=70&
40、;x<=79)9、disp(C)10、elseif(x>=60&x<=69)11、disp(D)12、elseif(x<60&x>=0)13、disp('E')14、else15、disp('e?e?卩?3e?2?o?Qi16、end17、else18、disp('?05')19、end20、設(shè)計程序,完成兩位數(shù)的加、減、乘、除四則運算,即產(chǎn)生兩個兩位隨機整數(shù),再輸入一個運算符號,做相應的運算,顯示相應的結(jié)果,并要求結(jié)果顯示類似于“a=x+y=34”。程序:x=round(rand(1)*100);y=rou
41、nd(rand(1)*100);disp('x=',num2str(x);disp('y=',num2str(y);A=input('請輸入一個運算符號:','s');%書上114頁有說明switch(A)case'+'a=x+y;disp('a=x+y=',num2str(a);case'-'a=x_y;disp('a=x_y=',num2str(a);a=x*y;disp('a=x*y=',num2str(a);caseTa=x/y;disp(
42、39;a=x/y=',num2str(a);end3、求下列分段函數(shù)的值26,0且-32y56,0<10,2且321,其他要求:用if語句實現(xiàn),分別輸出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。其中x的值以向量的形式從鍵盤輸入。x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0ifx<0&x=-3y=x.*x+x-6;elseifx>=0&x<5&x=2&x=3y=x.*x-5*x+6;elsey=x.*x-x-1endy五、實驗注意事項1、if語句和switch語句的應用場合2、編程時對
43、輸入和輸出的要求六、思考題填寫下列程序的執(zhí)行結(jié)果:a=90,70,65,54,76;n=length(a);b=zeros(1,n);fori=1:nifa(i)>75b(i)=100-a(i);elseifa(i)<=75b(i)=a(i)-60;endenddisp(b)b=10105-624函數(shù)文件程序設(shè)計實驗項目序號6MATLAB、實驗目的1、理解函數(shù)文件的概念;2、掌握定義和調(diào)用MATLAB函數(shù)的方法。、實驗基本知識叫作meditor,它也是系統(tǒng)默認的M文件編輯器。運行meditor的方法非常簡單,在MATLAB命令行窗口中鍵入下面的指令就可以打開meditor:>
44、>edit這時MATLAB將啟動meditor,然后創(chuàng)建一個未命名的空白文件。這時用戶就可以直接在編輯器中鍵入MATLAB指令,開發(fā)M語言文件了。M語言文件可以分為兩類,其中一類是腳本文件,另外一類叫作函數(shù)文件。M函數(shù)文件和腳本文件不同,函數(shù)文件不僅有自己特殊的文件格式,不同的函數(shù)還分別具有自己的工作空間。同其他高級語言類似,M函數(shù)文件也有局部變量和全局變量。函數(shù)文件的結(jié)構(gòu)和編寫方法:函數(shù)只能在函數(shù)體內(nèi)對變量進行操作,也就是只能訪問函數(shù)本身工作空間中的變量。M函數(shù)文件的結(jié)構(gòu):(4) (1)函數(shù)定義行(function)(2)H1行(函數(shù)幫助文本的第一行)(3)函數(shù)幫助文本函數(shù)體注釋函數(shù)文
45、件編寫后,保存時,其文件名必須與函數(shù)名相同。注意:函數(shù)名不要與MATLAB自身的函數(shù)命令相同。三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1、編寫一個函數(shù)文件chengji.m,用于求兩個矩陣的乘積和點乘,然后在命令行窗口中調(diào)用該函數(shù)(提示:使用varargout函數(shù)),要求:1)當兩矩陣是尺寸相同的方陣時,返回它們的乘積和點乘。2) 當兩矩陣不是尺寸相同的方陣時,則根據(jù)它們的尺寸,分別進行乘積或點乘。3) 當兩矩陣的尺寸不能滿足乘積或點乘的要求時,則提示“這兩個矩陣不能乘”程序為:functionvarargout=chengji(a,b)x,y=size(a);xx,yy=size(b);i
46、f(xx=yy&&x=y&&x=xx)varargout1=a*b;varargout2=a.*b;elseif(x=xx&&y=yy)varargout1=a.*b;disp('?ux?卩?3?'elseif(x=yy&&xx=y)disp('?eo?X?a?o)3?'varargout1=a*b;varargout2=b*a;elseif(x=yy|xx=y)tryvarargout1=a*b;disp('?ux?o3?'varargout2=0;catchvarargout1=
47、b*a;disp('?ux?o3?'varargout2=0;endelseerror('?aa?o2?u)3?'end2、編寫一函數(shù)qiuhe.m,實現(xiàn)sum(A)的功能,其中A為矩陣。程序為:functiony=qiuhe(a)y=;ifx=1s=0;fork=1:yys=s+a(1,k);endy=s;elseforj=1:yys=0;fori=1:xs=s+a(i,j);endy(1,j)=s;endend3、編寫一個階乘函數(shù)jiecheng.m,然后在試驗三的編程題"分別使用for和while語句找出最小的n值,使得n!>10100,并
48、求出n!”程序中調(diào)用該函數(shù)。程序:functions=jiecheng(n)s=1;ifn=0elseifn<0error('n士?D?'ooueo)uO'elsefori=1:ns=s*i;endend五、實驗注意事項1、注意腳本文件和函數(shù)文件的區(qū)別2、函數(shù)文件的調(diào)用六、思考題已知一函數(shù)文件如下:functiony=temf(a)iflength(a)<2y=a;elsey=max(a)-min(a);end則在命令窗口執(zhí)行有:實驗項目序號7數(shù)據(jù)插值與曲線擬合實驗、實驗目的1、掌握數(shù)據(jù)統(tǒng)計和分析的方法;2、掌握數(shù)據(jù)插值與曲線擬合的方法及其應用。、實驗基本知
49、識1、數(shù)據(jù)插值運算MATLAB提供的插值計算函數(shù)函數(shù)說明函數(shù)說明interp1一維插值(數(shù)值查表)griddata3二維數(shù)據(jù)網(wǎng)格的超表面數(shù)據(jù)插值interp1q一維快速插值(數(shù)值查表)griddatan多維數(shù)據(jù)網(wǎng)格的超表面數(shù)據(jù)插值interp2二維插值(數(shù)值查表)mkpp產(chǎn)生分段多項式interp3二維插值(數(shù)值查表)pchip分段的厄密多項式interpnN維插值(數(shù)值查表)ppval計算分段多項式的數(shù)值interpft使用FFT算法的一維插值spline三次楊條插值griddata二維數(shù)據(jù)網(wǎng)格的表面數(shù)據(jù)插值unmkpp分段多項式的細節(jié)1)一維插值:在MATLAB中實現(xiàn)一維插值的函數(shù)是int
50、erpl調(diào)用格式為:Yi=interp1(X,Y,Xi,method)X和Y為已知的原始數(shù)據(jù),分別描述采樣點和采樣值;?Xi為需要計算的插值點,是一個向量或標量;?Yi是插值結(jié)果;?X和Y,Xi和Yi若都為向量,則等長,若Y和Yi為矩陣,則length(X)andsize(Y,1)mustbethesame.?method是插值方法,允許的取值有多種;?若進行插值運算時,Xi的取值超過了X的范圍,則需要進行外插值運算:Yi=interp1(X,Y,Xi,method,'extrap')。2)二維插值:在MATLAB中實現(xiàn)二維插值的函數(shù)是interp2。調(diào)用格式為:Zi=inte
51、rp2(X,Y,Z,Xi,Yi,method)?X和Y為原始數(shù)據(jù),是兩個等長的已知向量,分別描述兩個參數(shù)的采樣點;?Z是與參數(shù)采樣點對應的函數(shù)值;?Xi,Yi是兩個向量或標量,描述欲插值的點;?Zi是根據(jù)相應的插值方法得到的插值結(jié)果;?method是插值方法,允許的取值有多種,與一維插值函數(shù)相同;?X,Y,Z也可以是矩陣的形式;?若進行插值運算時,Xi的取值超過了X的范圍,則需要進行外插值運算:Zi=interp2(X,Y,Z,Xi,Yi,method,'extrap')。2、曲線擬合曲線擬合的目的是用一個較簡單的函數(shù)去逼近一個復雜的或未知的函數(shù)。利用MATLAB進行曲線擬合主
52、要有兩種方法:回歸法擬合和多項式擬合。1)回歸法擬合主要是使用MATLAB的左除運算來尋找曲線擬合解析函數(shù)的系數(shù)。2)多項式擬合在MATLAB中進行多項式擬合主要使用的函數(shù)有:?polyfit:用來進行擬合計算P=polyfit(x,y,n)x和y為參與曲線擬合的原始數(shù)據(jù),n為進行擬合計算的多項式次數(shù),函數(shù)的返回值是多項式的系數(shù),即函數(shù)的運算結(jié)果為多項式的系數(shù)向量nn1yPnXPnixPiXPo?polyval:用來計算多項式的數(shù)值y=polyval(p,x)p為多項式的系數(shù),x是變量的數(shù)值,得到的結(jié)果就是函數(shù)的數(shù)值向量。三、主要儀器及耗材計算機四、實驗內(nèi)容和步驟1.已知原始數(shù)據(jù)x0:1:4*
53、pi,ysin(x).*exp(x/5),插值點為xi0:0.3:4*pi,試用四種不同的插值方法進行插值,并在一副圖中繪出四種插值曲線。程序:x=0:1:4*pi;y=sin(x).*exp(-x/5);xi=0:0.3:4*pi;y1=interp1(x,y,xi,'nearset');y2=interp1(x,y,xi,'linear');y4=interp1(x,y,xi,'cubic');plot(x,y,'-m',xi,y1,'*r',xi,y2,'ok',xi,y3,'Ab
54、39;,xi,y4,'+g')legend('?-e?ey?Y'x?2?D?2?“?ui?2?'?2?title('iiuo?ia?2?-,?DfN?me'卩'd¥e,'FontSize',20)xlabel('X?d,'FontName','d¥e'FontSize',16)ylabel('Y?d,'FontName','d¥e,'FontSize',16)考慮下面的數(shù)據(jù),一位舉重教練收集
55、了不同性別的舉重動員每個年齡的最大舉重磅數(shù),他相信這三者之間存在著函數(shù)關(guān)系,請創(chuàng)建一個年齡數(shù)組,以便估算當前隊伍中隊員(要求1320歲每一歲都有)的最大舉重。-最大、年齡性別1315171920男270290330350380女250270310330360程序:t=1315171920;sex=0,1'360;y=270290330350380;250270310330x=13:20;sex_2=0,1'y_2=interp2(t,sex,y,x,sex_2)surf(x,sex_2,y_2)3.某鄉(xiāng)鎮(zhèn)企業(yè)2009-2015年的生產(chǎn)利潤如下年份2009201020112012
56、201320142015利潤(萬兀)70122144152174196202要求用多項式擬合法預測出該企業(yè)2016年和2017年的利潤,并繪出擬合圖。程序:x=2004:2010;y=70122144152174196202;k=polyfit(x,y,1);x1=2004:2013;y1=polyval(k,x1);plot(x,y,'-ro',x1,y1,'-b*');title('?3?o?oo-2003?eu2u)a?eolegend('04-10?a?'04013?e1?a?eo?e?'xlabel('?);Y'ylabel('a?§0text(2011,polyval(k,2011),'<2011?ea?')eotext(2012,polyval(k,2012),'<2012?ea?')eogridon先使用命令load加載census.mat得到一組數(shù)據(jù)(cdate,pop),該數(shù)據(jù)是美國自1790到1990年(以10年為一單位)的總?cè)丝?。利用回歸法擬合,預測出美國在2010年的人口總
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CGCC 50-2021購物中心客戶滿意度評價規(guī)范
- T/CETA 003-2022多功能小型文化服務綜合體設(shè)計指南
- T/CECS 10360-2024活毒污水處理裝置
- T/CECS 10252-2022綠色建材評價彈性地板
- T/CECS 10103-2020用于水泥和混凝土中的鉛鋅、鐵尾礦微粉
- T/CECS 10055-2019綠色建材評價集成墻面
- T/CECS 10020-2019綜合管廊智能井蓋
- T/CCMA 0143-2023預制混凝土構(gòu)件平模流水生產(chǎn)線
- T/CCMA 0142-2022輪胎式裝載機排氣污染物車載測量方法
- T/CCMA 0119-2021瀝青混合料攪拌設(shè)備間歇式攪拌器
- 2025高考英語作文考前背誦(應用文+讀后續(xù)寫)
- 6.3種群基因組成的變化與物種的形成課件-2高一下學期生物人教版必修2
- 成人創(chuàng)傷性顱腦損傷院前與急診診治中國專家共識2025解讀
- 北京開放大學2025年《企業(yè)統(tǒng)計》形考作業(yè)4答案
- 廣東2025年中考模擬數(shù)學試卷試題及答案詳解
- GB/Z 27001-2025合格評定通用要素原則與要求
- 掛學籍協(xié)議書范本
- 2024年數(shù)字文化產(chǎn)業(yè)的發(fā)展策略試題及答案
- 國資監(jiān)管培訓課件
- 導游證-《全國導游基礎(chǔ)知識》歷年考試真題庫及答案(高頻300題)
- 護士分層級培訓及管理
評論
0/150
提交評論