Matlab實驗三答案_第1頁
Matlab實驗三答案_第2頁
Matlab實驗三答案_第3頁
Matlab實驗三答案_第4頁
Matlab實驗三答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗三MATLA晤言的程序設(shè)計一、實驗?zāi)康模?、熟悉 MATLAB 程序編輯與設(shè)計環(huán)境2、掌握各種編程語句語法規(guī)則及程序設(shè)計方法3、函數(shù)文件的編寫和設(shè)計4、了解和熟悉跨空間變量傳遞和賦值二、實驗基本知識:1、程序流程控制語句for 循環(huán)結(jié)構(gòu)語法:的門=初值:增量:終值語句 1語句 nend說明:1. i=初值:終值,則增量為1。2初值、增量、終值可正可負(fù),可以是整數(shù),也可以是小數(shù),只須符合數(shù)學(xué)邏輯。while 循環(huán)結(jié)構(gòu)語法: while 邏輯表達式循環(huán)體語句end說明:1、while結(jié)構(gòu)依據(jù)邏輯表達式的值判斷是否執(zhí)行循環(huán)體語勾。若表達式的值為真,執(zhí)行循環(huán)體語句一次、在反復(fù)執(zhí)行時,每次都要進行判

2、斷。若表達式的值為假,則程序執(zhí)行end之后的語句。2、為了避免因邏輯上的失誤,而陷入死循環(huán),建議在循環(huán)體語句的適當(dāng)位置加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)體語句3endif-else-end分支結(jié)構(gòu)if 表達式 1語句 1else if 表達式2(可選)語句 2else(可選)語句 3endend說明:結(jié)構(gòu)是一個條件分支語句,若滿足表達式的條件,則往下執(zhí)行;若不滿足,則跳出

3、if 結(jié)構(gòu)。2 . else if表達式2與else為可選項,這兩條語句可依據(jù)具體情況取舍。3 .注意:每一個if都對應(yīng)一個end,即有幾個if,記就應(yīng)有幾個end。switch-case 結(jié)構(gòu)語法:switch表達式case量表達式1語句組1case量表達式2語句組2 otherwise語句組 nend說明:1. switch后面的表達式可以是任何類型,如數(shù)字、字符串等。2.當(dāng)表達式的值與cas詬面常量表達式的值相等時,就執(zhí)行這個case后面的語句組如果所有的常量表達式的值都與這個表達式的值不相等時,則執(zhí)行 otherwise后的執(zhí)行語句。 程序流程控制指令 break、 return 、

4、pause 2、函數(shù)文件的結(jié)構(gòu)和編寫方法函數(shù)只能在函數(shù)體內(nèi)對變量進行操作,也就是只能訪問函數(shù)本身工作空間中的變量。M 函數(shù)文件的結(jié)構(gòu)( 1) 函數(shù)定義行( function )( 2) H1 行(函數(shù)幫助文本的第一行)( 3) 函數(shù)幫助文本( 4) 函數(shù)體( 5) 注釋函數(shù)文件編寫后, 保存時, 其文件名必須與函數(shù)名相同。 注意: 函數(shù)名不要與 MATLAB 自身的函數(shù)命令相同。三 、實驗內(nèi)容:2、用for循環(huán)語句實現(xiàn)求1100的和編程:sum=0;for i=1:100sum=sum+i;end sum運行結(jié)果:>> ljiasum =50503、用for循環(huán)語句實現(xiàn)編寫一個求階

5、乘的函數(shù)文件。編程:function y=jcheng(n)y=1;for i=1:ny=y*i;endy運行結(jié)果:假設(shè) n=5>> jcheng(5)y =120ans =1204、找到一個n!> 10100的值(利用上題的階乘函數(shù)文件)編程:i=1;while(1)y=jcheng(i);if y>10A100break;endi=i+1;endi運行結(jié)果:>> zhaony =y =24y =120y =720y =5040y =40320y =3628803628800y =39916800y =479001600y =6.2270e+009y =8

6、.7178e+010y =1.3077e+012y =2.0923e+013y =3.5569e+014y =6.4024e+015y =1.2165e+017y =2.4329e+018y =5.1091e+019y =1.1240e+021y =2.5852e+022y =6.2045e+023y =1.5511e+025y =4.0329e+0263.0489e+029y =8.8418e+030y =2.6525e+032y =8.2228e+033y =2.6313e+035y =8.6833e+036y =2.9523e+038y =1.0333e+040y =3.7199e+04

7、11.1962e+0561.3764e+043y =5.2302e+044y =2.0398e+046y =8.1592e+047y =3.3453e+049y =1.4050e+051y =6.0415e+052y =2.6583e+054y =5.5026e+057y =2.5862e+059y =1.2414e+061y =6.0828e+062y =3.0414e+064y =1.5511e+066y =8.0658e+067y =4.2749e+069y =y =y =1.2696e+073y =7.1100e+074y =4.0527e+076y =2.3506e+078y =1.

8、3868e+080y =8.3210e+081y =5.0758e+083y =1.9826e+087y =1.2689e+089y =8.2477e+090y =5.4434e+092y =3.6471e+094y =2.4800e+096y =1.7112e+098y =1.1979e+100i =705、編寫一個乘法表(9X9)編程:for i=1:9A=;for j=1:i;A=A,sprintf('%dx%d=%d ',j,i,i*j);enddisp(A)end運行結(jié)果:>> cfb1x1=11x2=2 2x2=41x3=3 2x3=6 3x3=91x4

9、=4 2x4=8 3x4=12 4x4=161x5=5 2x5=10 3x5=15 4x5=20 5x5=251x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=361x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=491x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=641x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=816、判斷y向量的元素屬于3n、3n+1或3n +2,設(shè)y = 3,5, 7, 9,11

10、,16。 編程:假設(shè):將3n放進數(shù)組A,將3n+1放進數(shù)組B,將3n+2放進數(shù)組C。y=3 5 7 9 11 16;A=;B=;C=;j=1;k=1;m=1;for i=1:6x=rem(y(i),3);if x=0A(j)=y(i);j=j+1;endif x=1B(k)=y(i);k=k+1;endif x=2C(m)=y(i);m=m+1;endenddisp(A)disp(B)disp(C)運行結(jié)果:>> yush16117、已知一維數(shù)組 A= 2,4,5,8,10、B=4, 9,6,7, 4,用 for循環(huán)語句實現(xiàn)Ai Bn i 1。求i1和函數(shù)可用 sum().編程:A

11、=2 4 5 8 10;B=4 9 6 7 4;C=;y=0;for i=1:5C(i)=(A(i)*B(5-i+1); y=y+C(i);endy運行結(jié)果:>> timu71788、(1 )編寫求解一維數(shù)組平均值的函數(shù)文件。( 2 )編寫求解二維數(shù)組平均值的函數(shù)文件。編程 1:function y=ywjz(A)x=0;n=numel(A);for i=1:nx=x+A(i);endv=x/n;運行結(jié)果:>> y=ywjz(1 2 3 4 5) y=3編程 2:function y=ewjz(A)x=0;n=numel(A);for i=1:nx=x+A(i);end

12、y=x/n;運行結(jié)果:>> y=ewjz(2 3;4 5;6 7;)y =調(diào)用驗證:A=1 3 3;5 5 7;y=ewjz(A);y>> aay =49、編寫驗證魔方矩陣的函數(shù)文件,輸出要求如下:( 1) 如果輸入矩陣的維數(shù)小于3,輸出顯示 error ( 2) 如果輸入矩陣的不是方陣,輸出顯示 the size of matrix X must be N-by-N matrix ( 3) 顯示行、列和及其對角線求和后的值,并判斷其和是否相同, 若不同,顯示No,相同顯示Yes 編程:function yanzh(x)r,c=size(x);if r=cdisp(&#

13、39;the size of matrix X must be N-by-N matrix')else if r<3disp('eroor')endendS=sum(x,1),sum(x,2)',sum(diag(x)',sum(diag(rot90(x)'if S(1)=S(2)&S(2)=S(3)&S(3)=S(4)&S(1)=S(4)disp('yes')elsedisp('no')end驗證運行:> > yanzh(8 1 6;3 5 7;4 9 2;)yes>

14、; > yanzh(8 1 6;3 5 7;)the size of matrix X must be N-by-N matrix no> > yanzh(8 6;3 5;)eroorno> > yanzh(8 2 6;3 5 7;4 9 2;)no.實驗五循環(huán)結(jié)構(gòu)程序設(shè)計實驗內(nèi)容(1)編寫程序?qū)崿F(xiàn)求兩矩陣A*B,A.*B.A*B>> A=input(' 輸入矩陣 A:');B=input('輸入矩陣 B:');C=zeros(size(A,1),size(B,2);for ii=1:size(A,1)for jj=1:

15、size(B,2)for k=1:size(A,2)C(ii,jj尸C(ii,jj)+A(ii,k)*B(k,jj);endendendC輸入矩陣A:1 2;3 4輸入矩陣B:5 6;7 819 2243 50A.*B>> A=input('請輸入矩陣 A:'); B=input('請輸入矩陣B:'); if size(A)=size(B) m,n=size(A);for i=1:mfor j=1:nC(i,j尸A(i,j)*B(i,j);endenddisp(' 輸出 A.*B:') Celsedisp(' 無效')end請輸入矩陣A:1 2 3請輸入矩陣B:4 5 6輸出A.*B:C =4 10 18(2)編寫程序?qū)崿F(xiàn)求矩陣的轉(zhuǎn)置>> A=i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論