西北工業(yè)大學Matlab習題.doc
一、 辨析題(共2小題,每題 5 分,共計 10 分)二、 問答題(共3小題,每題 5 分,共計 15 分)三、 計算題(共7小題,每題 5 分,共計 35 分)四、 編程題(共4小題,每題 10 分,共計 40 分)填空題(計算部分)1、標點符號; _可以使命令行不顯示運算結(jié)果,%用來表示該行為注釋行。2、x 為0 4pi ,步長為0.1pi 的向量,使用命令_創(chuàng)建。x=0:0.1*pi:4*pi3、輸入矩陣A= ,使用全下標方式用A(2,2) 取出元素“-5 ”,使用單下標方式用_取出元素“-5 ”。A(5)4、符號表達式sin(2*a+t)+m 中獨立的符號變量為_。t5、M腳本文件和M函數(shù)文件的主要區(qū)別是M腳本文件沒有函數(shù)定義和M函數(shù)文件有函數(shù)定義_。6. 設(shè)x是一維數(shù)組,x的倒數(shù)第3個元素表示為_;設(shè)y為二維數(shù)組,要刪除y的第34行和48列,可使用命令_; _;x(_end-2_) y(34,:)= y(:,48)=7. 將變量x以Ascii文本格式存儲到文件fname.txt,應(yīng)使用命令_ _;save _x8. 在while 表達式, 語句體, End 循環(huán)語句中,表達式的值_ _時表示循環(huán)條件為真,語句體將被執(zhí)行,否則跳出該循環(huán)語句; 非零9.要從鍵盤讀入一個字符串并賦值給變量x,且給出提示“Who is she?”,應(yīng)使用命令_;x=input(Who is she?,s)_10設(shè)A=和B= 和C=均為m*n 矩陣,且存在于WorkSpace中,要產(chǎn)生矩陣D= ,可用命令_ _,計算 可用命令_;D=(A-C)/B.Cdet(inv(A*B)11. 在MATLAB命令窗口中的“>>”標志為MATLAB的_ 提示符,“”標志為_提示符。命令行輸入12.已知A=1 2 3;4 5 0;7 8 9;B=1 0 3;1 5 0;0 1 2;寫出下列各指令運行的結(jié)果。A+B;A.*B;A=B ;ans= 2,2,6;5,10,0;7,9,11ans= 1,0,9;4,25,0;0,8,18ans= 1,0,1;0,1,1;0,0,013.已知A是矩陣,求A的對角矩陣函數(shù)是_,求A的下三角矩陣函數(shù)是_ 。diag tril14.MATLAB的程序文件和Simulink模型文件的擴展名分別是_、 。.m.mdl15.MATLAB最基本的繪圖函數(shù)為_ 。plot()16. A=1,2,3;4,5,6; A(:,1,3)=;A=_2;517. fix(-1.5)=_ _, round(-1.5)=_ _.-1 -218.已知A=1 3;4 6;C=A,eye(size(A);A ,ones(size(A) 則_.1 3 1 0;4 6 0 1;1 3 1 1;4 6 1 1_19. A=1,2,3;4,5,6; A(4)=_, A(3,2)=_5_ 無答案20.A=1,2;3,4;B=1,0;0,1; A*B=_, A.*B=_.1 2;3 4 1 0;0 421. A=1 2 3;6 5 4; reshape(A,3,2)=_.1 5;6 3;2 422. A=1,2;3,1; B=1,0;0,1; A=B=_.0 1;1 023. A=1,2,3;1,4,9;1,7,27; triu(A,-1)=_ _.-1表示為主對角線下一條對角線一下的數(shù)全變?yōu)? 提取矩陣上三角矩陣的函數(shù)1 2 3;1 4 9;0 7 2724. A=4,15,-45,10,6;56,0,17,-45,0; find(A>=10 & A<=20)=_ _. 3 6 725.已知A=0 9 6;1 3 0;B=1 4 3;1 5 0;寫出下列各指令運行的結(jié)果。A & B 的運行結(jié)果_;A ./ B 的運行結(jié)果_。ans=0 1 1;1 1 0 ans= 0 2.25 2;1 0.6 NaN26. 產(chǎn)生4階全0方陣的命令為_;產(chǎn)生3階全1方陣的命令為。zeros(4) ones(3)27. A=rand(2,5);b=size(A);c=length(A);則b和c的值分別為_ 。2 5和 528. 用if判斷語句判斷80 x >60,在MATLAB中if語言后的判斷應(yīng)寫為_。if x<=80 & x>6029.為了使兩個plot的圖形在同一個坐標顯示,可以使用_命令進行圖形保持;可以使用_命令為圖形添加網(wǎng)格。hold ongrid on30. MATLAB的工作空間中有三個變量v1, v2, v3,寫出把它們保存到文件my_data.mat中的指令_; save my_date31. MATLAB提供了兩種運行方式,是 按_和把_文件copy到matlab里,回車。F5*.m32MATLAB的含義為_。矩陣實驗室(Matrix Laboratory)33.MATLAB中,都包括哪些工具箱,舉例不少于6個:_偏微分方程工具箱 、最優(yōu)化工具箱 、插值運算工具箱、數(shù)理統(tǒng)計工具箱 、信號處理工具箱 、通信工具箱,濾波設(shè)計工具箱 。34、在MATLAB中,plot命令用于什么, 。 畫曲線35、size命令的功能,確定_。 陣列的長度36、a=1 2 2,求a的轉(zhuǎn)置_。 a=1;2;237、在線形圖型格式的設(shè)置中,字符r表示什么顏色。 紅色 38. 在MATLAB中,矩陣的秩由函數(shù) _來實現(xiàn)。 rank39在MATLAB中,單位矩陣由函數(shù)_來實現(xiàn)。 eye40. 在MATLAB中,二維餅圖由函數(shù)_來實現(xiàn)。 pie41. 在線形圖型格式的設(shè)置中,字符b表示什么顏色 。 藍色42. MATLAB表達式3*232的結(jié)果是_ 。 19243.條形圖由函數(shù)_來實現(xiàn)。 bar44. 倘若要是對x進行賦值,從5到25,間隔是0.1, x=5:0.1:25;45. 倘若要是對x進行賦值,從2到20,中間間隔100個點, x=linspace(2,20,100);選擇題(計算部分)1. 下列變量中的最大數(shù)是(C) Aeps Brealmin Crealmax D-pi2. 下列表示可以作為MATLAB的變量的是(D) Aabcd- 2 Bxyz_2# Ch DX_1_a3. 如果x=1: 2 : 8,則x(1)和x(4)分別是(B) A1,8 B1, 7 C2, 8 D2, 74. 下列變量中比0大的最小數(shù)是(B) Ai Brealmin Crealmax Dpi5. 在MATLAB中下列數(shù)值的表示不正確的是(B) A+99 B1.3e-5 C2-3*e2 D3-2*pi c d b b b6. 下列表示可以作為MATLAB的變量的是(B) Aabcd-2 Bxyz_2a Ch D3hour7. 如果x=1:-2:-8,則x(1)和x(5)分別是(D) A1,-8 B-1,-7 C-1,-8 D1,-78. MATLAB表達式2*232的結(jié)果是(A) A128 B4096 C. 262144 D256 9. 下列哪個變量的定義是不合法的(A)。(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz 10. 指出下列錯誤的指令(B)。 (A) syms a b; (B) syms a, b; (C) syms(a, b); (D) syms(a,b,positive); b d a A B11.下列哪條指令是求矩陣的行列式的值(C)。 (A) inv (B) diag (C) det (D) eig inv是求逆矩陣diag是矩陣對角元素的提取和創(chuàng)建對角陣sqrt(x) 求x的平方根 abs(x) 求x的絕對值det(a) 求行列式的值eig計算矩陣A的特征值和特征向量的函數(shù)clf; 用來清除圖形的命令12 .清空 Matlab 工作空間內(nèi)所有變量的指令是(C)。(A) clc (B) cls (C) clear (D) clf 13、下列變量名中A是合法的。(A) char_1 ; (B) x*y ; (C) xy ; (D) end 14.以下哪個說法是正確的()。(A)Matlab 進行數(shù)值計算的表達精度與其指令窗口中的數(shù)值顯示精度相同。 (B)Matlab 指令窗口中顯示的數(shù)值有效位數(shù)不能超過 7 位。 (C)輸入二維數(shù)值數(shù)組時,需要用到逗號和分號,它們可以在中文狀態(tài)下輸入。 (D)歷史指令窗口所記錄的內(nèi)容 與 diary 指令所產(chǎn)生“日志”內(nèi)容是不同的。 15. 產(chǎn)生四維單位矩陣的語句為().A.ones(4) B.eye(4) C.zeros(4) D.rand(4) >> eye(4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1>> ones(4)ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>> zeros(4) ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> rand(4)ans = 0.8147 0.6324 0.9575 0.9572 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1576 0.8003 0.9134 0.5469 0.9706 0.1419C C a D b16.求解線性方程組Ax=b,當det(A)0時,方程的解是().A. Ab B.b/A C.bA D.A/b17. 運行如下程序后,輸入回車,命令窗口(command windows)顯示的結(jié)果為()c=input(請輸入一個字符,s);if c>=A & c<=Zdisp(setstr(abs(c)+abs(a)-abs(A);elseif c>=a& c<=zdisp(setstr(abs(c)- abs(a)+abs(A);elseif c>=0& c<=9disp(abs(c)-abs(0);elsedisp(c);endA. 9 B. 8 C. 7 D. 618. 運行下面的代碼后,輸入:回車,回車,回車,則輸出結(jié)果為()a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);. x1=num2str(1) x2=num2str(1) B. x1=num2str(-1) x2=num2str(1)C. x1= -1 x2=-1D. x1=1 x2=-119. 清除工作空間(wordspace)的命令是(). clc; B. clear; C. clf; D.delete; 20. 運行如下程序后,輸入回車,命令窗口(command windows)顯示的結(jié)果為( )x=input(請輸入x的值:);if x=10y=cos(x+1)+sqrt(x*x+1);elsey=(3(1/2)*sqrt(x+sqrt(x);endyA. 9 B. 8 C. 7 D. 6a a c b d21. 運行如下程序后, 命令窗口(command windows)顯示的結(jié)果為( b)s=0;a=12,13,14;15,16,17;18,19,20;for k=as=s+k;enddisp(s);A. 144 B. 39 48 57 C.145 D. 45 48 5122. 運行如下程序后, 命令窗口(command windows)顯示的結(jié)果為(b )k=0;for n=100:200if rem(n,21)=0 %R=rem(X,Y),求余數(shù)函數(shù),X,Y應(yīng)該為正數(shù)k=k+1; continueend break;end kA.105 B. 5 C.4 D.10123. 圖形窗口(Figure)顯示網(wǎng)格的命令是(b)A. axis on B. grid on C. box on D. hold on24. 已知函數(shù)文件如下,則factor(4)=(c )function f=factor(n)if n<=1f=1;elsef=factor(n-1)*n; endA. 4 B. 12 C. 24 D.4825. 運行如下程序后, 命令窗口(command windows)顯示的結(jié)果為( d)A=13,-56,78; 25,63,-735; 78,25,563; 1,0,-1; y=max(max(A) A. y=564 B.y=9 C.y=-735 D.y=56326. 在圖形指定位置加標注命令是(c)A. title(x,y,y=sin(x); B. xlabel(x,y,y=sin(x);C. text(x,y,y=sin(x); D. legend(x,y,y=sin(x); %添加圖例的標注,27.下列哪個函數(shù)為插值函數(shù)(b)A. P=polyfit(X,Y,3) B. Y1=interp1(X,Y,X1,method)C. Y,I=sort(A,dim) D. R=corrcoef(X)28i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序執(zhí)行后;a, b, c的值分別是多少?c(A)a=4, b=4, c=2.0000i(B)a=4, b=2.0000i, c=2.0000i(C)a=2.0000i, b=4, c=2.0000i (D) a=2.0000i, b=2.0000i, c=2.0000i29. 求解方程x4-4x3+12x-9 = 0 的所有解a(A)1.0000, 3.0000, 1.7321, -1.7321(B)1.0000, 3.0000, 1.7321i, -1.7321i(C)1.0000i, 3.0000i, 1.7321, -1.7321(D)-3.0000i, 3.0000i, 1.7321, -1.732130、在循環(huán)結(jié)構(gòu)中跳出循環(huán),但繼續(xù)下次循環(huán)的命令為 。c(A) return; (B) break ; (C) continue ; (D) keyboard31. 用round函數(shù)四舍五入對數(shù)組2.48 6.39 3.93 8.52取整,結(jié)果為 c(A) 2 6 3 8 (B) 2 6 4 8 (C) 2 6 4 9 (D) 3 7 4 932. 已知a=2:2:8, b=2:5,下面的運算表達式中,出錯的為 c(A) a *b (B) a .*b (C) a*b (D) a-b辨析題:1 MATLAB有幾種建立矩陣的方法?各有什么優(yōu)點?。2 MATLAB提供編程語言,請辨析M文件編程中的命令文件與函數(shù)文件兩種形式。3 辨析matlab中的擬合與插值有什么區(qū)別4. 判斷下列一段程序的錯誤,并進行改正。 x=-2:0.2:2;y=x.2;plot(x,y)str1 = num2str(min(x);% 數(shù)字轉(zhuǎn)化為字符串str2 = num2str(max(x);% 數(shù)字轉(zhuǎn)化為字符串out = Value of f from str1 to str2;xlabel(out);out = Value of f from str1 to str2;或out = Value of f from str1 to str2;5根據(jù)下面兩個矩陣執(zhí)行下列的矩陣運算命令,并回答有關(guān)的問題(1) A.*B和 A*B將分別給出什么結(jié)果,它們是否相同,為什么?(2) 得出A.B、A/B及AB的結(jié)果,并分別解釋它們的物理意義。問答題:1 MATLAB系統(tǒng)包括哪些窗口,各個窗口功能是什么?2 分析下面程序運行后s1,n1,s2,n2,m的值。s1=0;s2=0;n1=0;n2=0;x=1,-4,-8,3,10,-9,7,-3,10, 8,-5,-2,2,0 ;m=length(x);for i=1:mif x(i)<0s1=s1+x(i);n1=n1+1;else s2=s2+x(i); n2=n2+1;endends1,n1,s2,n2,m 請回答s1,n1,s2,n2,m的結(jié)果。3 已建立一個簡單的SIMULINK模型,如下圖,用信號發(fā)生器產(chǎn)生一個仿真圖,請對下圖的符號和功能進行解釋。3 A = 1 2; 3 4; B = 1 2; 1 4; 寫出下面幾條指令的運行結(jié)果: C = A*B D = A+B E = A.*B 答:C =3 107 22D =2 44 8E =1 43 164.mysum=0;i=1;while(i<=100)mysum=mysum+i;i=i+1;endmysum答:mysum =50505.在MATLAB窗口中,用哪兩種方法啟動Simulink?答:在MATLAB命令窗口中輸入“simulink”再回車,或者單擊工具欄中的SIMULINK圖標6. 請修改下面的程序,讓他們沒有for循環(huán)語句!A=1 2 3; 4 5 6; 7 8 9;r c=size(A); for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2)A(i,j)=0;endendend解:程序如下:a=1 2 3;4 5 6;7 8 9;b=(a<=8&a>=2);a=a.*b7 編寫一個函數(shù),使其能夠產(chǎn)生如下的分段函數(shù):并調(diào)用此函數(shù),繪制x=0,+2范圍內(nèi)的f(x)*f(x+2) 。答:function y=f(x)if x<=2y=0.5*x;else if x>6y=0.5;else y =1.5-0.25*x;endend運行結(jié)果 x=2f(x)=1x = 0:0.05:2;y = diag(A2(x)*A2(x+2);plot(x,y);xlabel(bfx);ylabel(bfy);8(1) 將一個屏幕分4幅,選擇合適的步長在右上幅與左下幅繪制出下列函數(shù)的圖形。,x (曲線圖);f(x,y)=(-2<=x<=2,-4<=x<=4) (曲面圖)。答:subplot(2,2,2);ezplot(cos(x)(1/2),-pi/2 pi/2);ylabel(y); subplot(2,2,3);x=-2:0.5:2;y=-4:1:4;ezsurfc(x2/22+y2/42)(2) A 是一個維度mn的矩陣. 寫一段程序, 算出A中有多少個零元素。答:>> A= input (請輸入一個矩陣)m,n= size(A);sig=0;for i=1:mfor j=1:nif A(i,j)=0sig = sig+1;endendend請輸入一個矩陣0 1 2;1 0 2; 0 0 0A =0 1 21 0 20 0 0>>sigsig =59 向量 A=. 寫一段程序, 找出A中的最小元素。答:A= input (請輸入一個向量)m,n=size(A)min =A(1,n);for i=1:nif A(1,i)<minmin=A(1,i)endend請輸入一個向量1 2 3 -5 2 0A =1 2 3 -5 2 0min =-510 寫出執(zhí)行以下代碼后C,D,E的值 A=1,2,3;4:6;7:9; C=A;10,11,12,D=C(1:3,2 3)E=C(2,1 2)C = 1 2 3 4 5 6 7 8 9 10 11 12D = 2 3 5 6 8 9E = 4 511 寫出執(zhí)行以下代碼后,MATLAB命令窗口上顯示的x矩陣的值。x=0,1,0,2,0,3,0,4; for k=1:8if x(k)=0x(k)=k;elsex(k)=2*k+1;endenddisp(x);1 5 3 9 5 13 7 1712 創(chuàng)建符號函數(shù)并求解,要求寫出步驟和運行結(jié)果(1)創(chuàng)建符號函數(shù)f=ax2+bx+c(2)求f=0的解syms a x b c;f=a*x2+b*x+c;solve(f)ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)13 求解以下線性方程組,要求寫出程序代碼和運行結(jié)果。 2x1-3x2+x3+2x4=8 x1+3x2+ x4=6 x1-x2+x3+8x4=1 7x1+x2-2x3+2x4=5解:程序代碼:a=2 -3 1 2;1 3 0 1;1 -1 1 8;7 1 -2 2;b=8 6 1 5;ra=rank(a);rb=rank(a b);det(a);xx=ab運行結(jié)果:xx = 3.1079 1.3278 7.9502 -1.091314. (1) 寫出關(guān)系運算符中的等號、不等號、小于號、大于號、小于等于號和大于等于號;(2) 寫出邏輯操作中邏輯“與”、邏輯“或”及邏輯“非”的符號; (3) 并用語句表達“如果a等于 b且c等于0就讓d 等于3,否則如果a大于b且c=1讓d等于 0,其余情況讓d等于3”;解:(1) = = < > <= >=(2)& | (3)if a=b&c=0d=3else if a>b&c= =1d=0elsed=3end15. 設(shè)A= 和B= 是兩個10行10列的矩陣(數(shù)組),試說明命令A(yù)*B, A/B, AB, A.*(B.A), A./B, A.B和sin(A).*exp(B)的涵義。解:A,B的矩陣乘法,矩陣A乘以B的逆,矩陣B乘以A的逆,B的每個元素的對應(yīng)A次冪乘以A對應(yīng)的每個元素A的每個元素除以B對應(yīng)的每個元素,B的每個元素除以A對應(yīng)的每個元素,A的每個元素的正弦與B對應(yīng)的每個元素的指數(shù)求積,16. 設(shè)A為14*17 數(shù)組,B為一個行數(shù)大于3的數(shù)組,請給出(1)刪除A的第4、8、12三列的命令; (2)刪除B的倒數(shù)第3行的命令;解:(1)A(:,4 8 12)=(2) B(end-2)=編程簡題1 利用MATLAB數(shù)值運算,求解線性方程組(將程序保存為?.m文件)2 求下列聯(lián)立方程的解 3x+4y-7z-12w=45x-7y+4z+ 2w=-3x +8z- 5w=9-6x+5y-2z+10w=-8求系數(shù)矩陣的秩;求出方程組的解。 解:(1)>> a=3 4 -7 -125 -7 4 2 ;1 0 8 -5;-6 5 -2 10;c=4; -3; 9;-8;b=rank(a)b = 4(2)>> d=acd = -1.4841, -0.6816, 0.5337,-1.2429即: x=-1.4841;y= -0.6816;z= 0.5337;w=-1.24293 編寫MATALAB程序,完成下列任務(wù)(將程序保存為test04.m文件):(1)在區(qū)間 0,4*pi上均勻地取20個點構(gòu)成向量 ;(2)分別計算函數(shù)y1=sin(t) 與y2=2cos(2t) 在向量 t處的函數(shù)值;(3)在同一圖形窗口繪制曲線y1=sin(t) 與y2=2cos(2t) ,要求 y1曲線為黑色點畫線,y2 曲線為紅色虛線圓圈;并在圖中恰當位置標注兩條曲線的圖例;給圖形加上標題“y1 and y2”。程序如下:(1)t=linspace(0,4*pi,20);(2)y1=sin(t);y2=2*cos(2*t);(3)plot(t,y1,k-.);text(1.2,sin(1.2),y1leftarrow,FontSize,12);hold on;plot(t,y2,r-o);text(6,1.5,y2leftarrow,FontSize,12);title(y1 and y2)4 編寫M函數(shù)文件,利用for循環(huán)或while循環(huán)完成計算函數(shù)y=sum(n)= 的任務(wù),并利用該函數(shù)計算 n=20時的和(將總程序保存為?.m文件)。function sum=text4(n);sum=0;m=1;while m<=n; sum=sum+mm m=m+1;end當n=20時 用上述程序求得的和為: 1.0688e+0265 請產(chǎn)生一個100*5的矩陣,矩陣的每一行都是1 2 3 4 5解:repmat(1:5,100,1)6 已知變量:A=ilovematlab;B=matlab, 請找出:(A) B在A中的位置。 解:strfind(A,B):(strfind(A,B)+length(B)-1)(B) 把B放在A后面,形成C=ilovematlabmatlab 解: C = A,B7編寫M文件,煉鋼基本上是一個氧化脫碳的過程,鋼液中原含碳量多少直接影響到冶煉時間的長短,下表是某平爐的熔鋼完畢碳(x)與精煉時間(y)的生產(chǎn)記錄?,F(xiàn)希望從上表的數(shù)據(jù)中找出x與y變化規(guī)律的經(jīng)驗公式,用多項式進行曲線擬合,并給出相應(yīng)的曲線。>> x=134 150 180 104 190 163 200;>> y=135 168 200 100 215 175 220;>> f=polyfit(x,y,2)f = -0.0016 1.7666 -68.3091>> plot(x,y,o,x,polyval(f,x)x與y的關(guān)系式為y=-0.0016*x2+1.7666*x-68.3091