




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MATLAB期末考試試卷及其參考答案
一、填空題〔每空1分,20分)
1、MATLAB常用操作界面包括命令窗口、工作空間窗口(瀏覽器)、命令歷史窗口、當(dāng)前目錄窗口、內(nèi)存數(shù)組編輯器、
M文件編輯/調(diào)試器、幫助導(dǎo)航/瀏覽器、圖形窗口等。
2,MATLABInf或inf表示無窮大、NaN或nan表示不是一個(gè)數(shù)、nargout表示函數(shù)輸出宗量數(shù)目。
3、MATLAB中逗號主要用作要顯示計(jì)算結(jié)果指令與其后指令分隔;用作輸入量與輸入量之間分隔符;用作數(shù)組元素
分隔符號。
4、工作空間瀏覽器主要用于內(nèi)存變量查閱、保存和編輯。
5、MATLAB實(shí)現(xiàn)將全下標(biāo)轉(zhuǎn)換為單下標(biāo)指令為Sub2ind、據(jù)單下標(biāo)換算出全下標(biāo)指令為Ind2sub。
6、二維數(shù)組標(biāo)識有“全下標(biāo)”標(biāo)識、"單下標(biāo)”標(biāo)識、"邏輯1”標(biāo)識。
7、在一個(gè)元胞數(shù)組A中尋訪第2行第3列元胞元素用A(2,3);尋訪數(shù)組第2行第3列元胞中內(nèi)容用A{2,3}。
8、MATLAB中elf用于去除圖形窗、clc用于去除指令窗中顯示內(nèi)容、clear用于去除MATLAB工作空間中保存變量。
二、簡答題(每題5分,共20分)
簡述MATLAB歷史指令窗主要作用。
歷史指令窗記錄著用戶在MATLAB指令窗中所輸入過所有指令。歷史記錄包括:每次開啟MATLAB時(shí)間,每次
開啟MATLAB后在指令窗中運(yùn)行過所有指令。應(yīng)用功能有單行或多行指令復(fù)制和運(yùn)行、生成M文件等。
2、簡述空數(shù)組功用。
“空”數(shù)組功用:在沒有“空”數(shù)組參與運(yùn)算時(shí),計(jì)算結(jié)果中“空〃可以合理地解釋“所得結(jié)果含義”;運(yùn)用"空”數(shù)
組對其他非空數(shù)組賦值,可以改變數(shù)組大小,但不能改變數(shù)組維數(shù)。
3、簡述MATLAB函數(shù)根本構(gòu)造。
典型M函數(shù)文件構(gòu)造:函數(shù)申明(定義)行(Functiondeclarationline)、HI行(Thefirsthelptextline)、在線幫助文
本(Helptext)區(qū)、編寫和修改記錄、函數(shù)體(Functionbody)。
4、簡述繪制二維圖形一般步驟。
繪制二維圖形一般步驟為:曲線數(shù)據(jù)準(zhǔn)備、選定圖形窗及子圖位置、調(diào)用二維曲線繪圖指令、設(shè)置軸范圍、坐標(biāo)
分格線、圖形注釋、圖形精細(xì)操作。
三、閱讀程序并答復(fù)以下問題(每題4分,共28分)
1、寫出以下指令運(yùn)行結(jié)果.
A=zeros(2,4);
A(:)=1:8;
s=[235];
A(s)
Sa=[102030]'
A(s)=Sa
ans=
235
Sa-
10
20
30
A=
120307
10468
2、寫出以下指令運(yùn)行結(jié)果。
A=reshape(1:16,2,8)
A=
246810121416
reshape(A,4,4)
ans=
15913
261014
371115
481216
s=[l3689111416];
A(s)=0
A=
0057001315
2400101200
3、寫出以下指令運(yùn)行結(jié)果。
A=[l,2;3,4];
B=[-l,-2;2,l];
S=3;
A.*B
A*B
S.*A
S*B
ans=
-1-4
64
ans=
30
5-2
ans=
36
912
ans=
-3-6
63
4、下面函數(shù)主要完成什么功能?
functionf=factor(n)
ifn<=1
f=l;
else
f=factor(n-l)*n;
end
利用函數(shù)遞歸調(diào)用,求n!。
5、寫出以下指令運(yùn)行結(jié)果。
ch=<ABcl23d4e56Fg9,;
subch=ch(l:5)
revch=ch(end:-l:l)
k=find(ch>=4a,&ch<=4z,);
ch(k)=ch(k)-(ta,-4A,);
char(ch)
length(k)
subch=
ABcl2
revch=
9gF65e4d321cBA
ans=
ABC123D4E56FG9
6、寫出以下指令運(yùn)行結(jié)果。
A(1,1)={'thisiscell'};
A{1,2}={[123;456]};
A{2,l)=[l+2*i];
A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));
celldisp(A)
A{1,1}=
thisiscell
A(2,1)=
A{1,2}{1}=
123
456
A{2,2}=
789
101112
7、在同一個(gè)圖中繪制兩個(gè)函數(shù),這兩個(gè)函數(shù)分別是:
y=e("3)
y0=e(t/3,*sin(3t)
其中y是用紅色細(xì)實(shí)線,而y0是用蘭色虛線繪制,t區(qū)間是(0:4兀),t步長為冗/50,t軸和y軸分別用斜粗題指示,圖中
有網(wǎng)格表示。
四、編程題(32分)
I、I、在同一圖上分別用紅色實(shí)線和綠色虛線繪制yl=sin(x)和y2=cos(x)在區(qū)間[0,4*pi]曲線,并用星號*標(biāo)出兩條曲
線交點(diǎn)以及建立圖例。(5分)
答案
elf
x=0:pi/200:2*pi;
yl=sin(x);
y2=cos(x);
zz=x(find(abs(yl-y2)<0.005))
z=min(zz)
plot(x,yl;r-',x,y2;g-.')
holdon
plol(zz,sin(zz),'*')
legend('sin','cos')
2、分別在同一圖形窗不同子圖繪制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包絡(luò)線。[4分)
答案
t=(0:pi/100:pi)’;
yl=sin(t)*[l,-l];
y2=sin(t).*sin(9*t);
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);subplot(1,2,1)
plot(t,y1,,r:,,t,y2,,b,,t3,y3/bo,)
subplot(l,2,2)
plot(t?y2;b')
axis([0,pi,-l,l])
3、某商場對顧客所購置商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示):
price<200沒有折扣
200<price<5003%折扣
500<price<10005%折扣
1000<price<25008%折扣
2500<price<500010%折扣
5000<price14%折扣
輸入所售商品價(jià)格,求其實(shí)際銷售價(jià)格。(5分)
答案
price=input(,請輸入商品價(jià)格);
switchfix(price/100)
case{0,1}%價(jià)格小于200
rate=0;
case{2,3,4}%價(jià)格大于等于200但小于500
rate=3/100;
casenum2cell(5:9)%價(jià)格大于等于500但小于1000
rate=5/100;
casenum2cell(10:24)%價(jià)格大于等于1000但小于2500
rate=8/100;
casenum2cell(25:49)%價(jià)格大于等于2500但小于5000
rate=10/100;
otherwise%價(jià)格大于等于5000
rate=14/100;
end
price=price*(1-rate)%輸出商品實(shí)際銷售價(jià)格
4、編寫程序?qū)崿F(xiàn)f(n)=f(n-l)+f(n-2)(f(l)=l和f(2)=2)函數(shù)。(6分)
答案
functionf=fab(n)
if(n==l)
f=1;
elseif(n==2)
f=2;
else
f=fab(n-l)+fab(n-2);
end
5、編寫一個(gè)學(xué)生成績管理程序(12分)
A.構(gòu)造一個(gè)學(xué)生構(gòu)造,包括學(xué)生學(xué)號,姓名,課程名稱(限五門),考試成績和平均值等域;(4分)
B.從鍵盤上,連續(xù)輸入N個(gè)學(xué)生情況,分別將這些學(xué)生情況填入到相應(yīng)域,假設(shè)域中沒有值即為空或0并計(jì)算平均
成績寫入到平均值域。(4分)
C.根據(jù)平均值排序,并輸出學(xué)生姓名、學(xué)號和平均成績。(4分)
答案
strl=";
str2=n;
str3=n;
val=cell(5,2)
a=zeros(5,l);
ave=0;
student=struct('Name',strl,'No',slr2,'Scores',val,'Ave',ave);
n=inputC^leaseinputstudentsnumber:');
fori=l:n
strl=inputCName:*);
str2=inputCNo.:*);
%fork=l:2
%val(k,:)=input('CuiTiculumsandScores:*);
%a(k,l)=val{k,2};
%end
%val(l,:)=input(^Curriculum:^);
%val(:,2)=input(rScores:');
val=input(*pleaseinputfiveCurriculumsandScores:*);
fork=l:5
a(k,l)=val{k,2};
end
student(i).Name=strl;
student(i).No=str2;
student(i).Scores=val;
student(i).Ave=mean(a);
end
forii=1:(length(student)-l)
iptr=ii;
forjj=ii+l:length(student)
if(student(jj).Ave>student(iptr).Ave)
iptr=jj;
end
end
ifii~=iplr
temp=student(ii);
student(ii)=student(iptr);
student(iptr)=temp;
end
end
forii=l:length(student)
ifstudent(ii).Ave>80
disp(student(ii).Name);
disp(student(ii).Ave);
end
end
disp([*studentname',blanks(6),Studentno.*,blanks(6),'studentaverage,]);disp(,1)
forii=l:length(student)
disp([student(ii),Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).Ave)]);
end
答案
strl=u;
str2廿';
str3=M;
val=cell(5,2)
a=zeros(5,l);
ave=0;
student=struct(fName',strl,'No1,str2,Scores*,val,1Ave1,ave);
n=input('pleaseinputstudentsnumber:1);
fbri=l:n
strl=inputCNamef);
str2=inputCNo.:*);
%fork=l:2
%val(k,:)=input(,CurriculumsandScores:1);
%a(k,l)=val{k,2};
%end
%val(l,:)=input('Cuiriculum:');
%val(:,2)=inputCScores:1);
val=input('pleaseinputfiveCumculumsandScores:1);
fork=l:5
a(k,l)=val{k,2};
end
student(i).Name=strl;
student(i).No=str2;
student(i).Scores=val;
student(i).Ave=mean(a);
end
forii=1:(length(student)-1)
iptr=ii;
forjj=ii+l:length(student)
if(student(jj).Ave>student(iptr).Ave)
iptr=jj;
end
end
ifii?二iptr
temp二student(ii);
student(ii)=student(iptr);
student(iptr)=temp;
end
end
forii=l:length(student)
ifstudent(ii).Ave>80
disp(student(ii).Name);
disp(student(ii).Ave);
end
end
1
disp(「studentname,blanks(6),Studentno.\blanks(6),Studentaverage']);disp('')
forii=l:length(student)
disp([student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).Ave)]);
end
一、填空題(每空2分,總共30分)
1.A=[096;130];B=[l43;150];寫出以下各指令運(yùn)行結(jié)果。
A&B運(yùn)行結(jié)果ans=;
A./B運(yùn)行結(jié)果ans=。
2.產(chǎn)生4階全0方陣命令為zeros(4);產(chǎn)生3階全1方陣命令為ones(3)。
3.A=rand(2,5);b=size(A);c=length(A);那么b和c值分另為和[2,5],[5]。
4.標(biāo)點(diǎn)符號分號可以使命令行不顯示運(yùn)算結(jié)果,百分號用來表示該行為注釋行。
5.用if判斷語句判斷802x〉60,在MATLAB中if語言后判斷應(yīng)寫為if
x〈=80&x〉60。
6.P,Q分別是個(gè)多項(xiàng)式系數(shù)矢量,求P對應(yīng)多項(xiàng)式積分(對應(yīng)常數(shù)項(xiàng)為K),使用命令
是polyint(P,K);求P/Q解,商和余數(shù)分別保存在k和r,使用命令是
[k,r]=deconv(P,Q)_;
7.為了使兩個(gè)plot圖形在同一個(gè)坐標(biāo)顯示,可以使用holdon命令進(jìn)展圖形保持:
可以使用gridon命令為圖形添加網(wǎng)格。
savemydata_______loadmydata____。
二、選擇題,每空2分,總共20分)
1.以下哪個(gè)變量定義是不合法」______
(A)abcd-3(B)xyz_3(C)abcdef(D)x3yz
2.以下哪條指令是求矩陣行列式值C
(A)inv(B)diag(C)det(D)eig
3.在循環(huán)構(gòu)造中跳出循環(huán),執(zhí)行循環(huán)后面代碼命令為B
(A)return(B)break(C)continue(D)keyboard
4.清空Matlab工作空間內(nèi)所有變量指令是C
(A)clc(B)cis(C)clear(D)elf
5.用round函數(shù)四舍五入對數(shù)組[2.486.393.938.52]取整,結(jié)果為C
(A)[2638](B)[2648](C)[2649](D)[3749]
6.a=2:2:8,b=2:5,下面運(yùn)算表達(dá)式中,出錯(cuò)為C
(A)a*b(B)a.*b(C)a*b(D)a-b
7.角度x=[304560],計(jì)算其正弦函數(shù)運(yùn)算為2
(A)SIN(deg2rad(x))(B)SIN(x)(C)sin(x)(D)sin(deg2rad(x))
8.下面程序執(zhí)行后array值為(A)
fork=l:10
ifk>6
break;
else
array(k)=k;
end
end
(A)array=[1,2,3,4,5,6](B)array=[1,2,3,4,5,6,7,8,9,10]
(C)array=6(D)array=10.
9.i=2;a=2i;b=2*i;c=2*sqrt(T);程序執(zhí)行后;a,b,c值分別是多少?
(A)a=4,b=4,c=2.OOOOi(C)
(D)
10.求解方程X'-4X3+12X-9=0所有解
三、寫出程序執(zhí)行結(jié)果或?qū)懗鼋o定要求指令(總共35分)
1.寫出執(zhí)行以下代碼后C,D,E值(6分)
A=[l,2,3;4:6;7:9];
C=[A;[10,11,12]],
D=C(1:3,[23])
E=C(2,[12])
2.寫出執(zhí)行以下代碼后,MATLAB命令窗口上顯示x矩陣值(5分)
x=[0,1,0,2,0,3,0,4];
fork=l:8
ifx(k)==0
x(k)=k;
else
x(k)=2*k+l;
end
end
disp(x);
3.創(chuàng)立符號函數(shù)并求解,要求寫出步驟和運(yùn)行結(jié)果(7分)
(1)創(chuàng)立符號函數(shù)f=ax2+bx+c
⑵求f=0解
4.求解以下線性方程組,要求寫出程序代碼和運(yùn)行結(jié)果(5分)
2x1-3x2+x3+2x4=8
x1+3x2+x4=6
xl-x2+x3+8x4=l
7x1+x2-2x3+2x4=5
5.繪制函數(shù)曲線,要求寫出程序代碼(12分)
⑴在區(qū)間[0:2均勻取50個(gè)點(diǎn),構(gòu)成向量n
(2)在同一窗口繪制曲線yl=sin(2*t-0.3);y2=3cos(t+0.5);要求yl曲線為紅色點(diǎn)劃線,標(biāo)記點(diǎn)
為圓圈;y2為藍(lán)色虛線,標(biāo)記點(diǎn)為星號
四、使用MATLAB語言進(jìn)展編程(15分)
打印出所有水仙花數(shù)。所謂“水仙花數(shù)”,是指一個(gè)三位數(shù),其各位數(shù)字立方之和等于該數(shù)本身。
一、填空題
1、
ans=
011
110
ans=
1.00000.6000NaN
2、zeros(4)ones(3)
3、[25][5]
4、;%
5、ifx<=80&x>60
6、polyint(P,K)[k,r]=deconv(P,Q)
7、holdongridon
8,savemy_dataLoadmy_data
__、選擇題
1,A2、C3>B4、C5、C6、C7、D8、A9、C10、A
三、寫出程序執(zhí)行結(jié)果或?qū)懗鼋o定要求指令
1、
c=
D=
23
56
89
E=
45
2、
1539513717
3,
?symsabcx
?s=a*x'2+b*x+c;
?solve(s)
ans=
[l/2/a*(-b+(b-2-4*a*c)"(1/2))]
[l/2/a*(-b-(b*2-4*a*c)"(1/2))]
4、
?symsabcx
?symsxlx2x3x4
?clear
?symsxlx2x3x4
?f=2*xl+3*x2+x3+2*x4-8;
?g=xl+3*x2+x4-6;
?h=xl-x2+x3+8*x4-1;
?i=7*xl+x2-2*x3+2*x4-5;
?[xl,x2,x3,x4]=solve(f,g,h,i)
xl=
13/17
x2=
320/187
x3=
212/187
x4=
19/187
5、
t=1inspace(0,2*pi,50);
plot(t,yl,'r-o',t,y2,'b-*');
四、使用MATLAB語言進(jìn)展編程
fork=100:999
a=fix(k/100);
b=rem(fix(k/10),10);
c=rem(k,10);
ifa.3+b.*3+c.3==k
fprintf("%u,\t\t",k)
end
end
根本知識填空題(每空1分,共20分)
1.MATLAB通用命令中列出內(nèi)存中變量目錄可用_whos命令;假設(shè)對函數(shù)功能和用法不熟悉,
可用_help命令;顯示變量、陣列或文本時(shí),可用_disp命令;去除工作空間中變量時(shí),可
用一clear命令;保存和恢復(fù)工作空間,或者工作空間中特定變量時(shí),可用_save和」oad
命令。
2、在MATLAB圖形系統(tǒng)中,如果需要給已經(jīng)繪制好圖形加上柵格線,可以使用_gridon__________命
令,如果需要在指定坐標(biāo)位置標(biāo)注文本時(shí)使用函數(shù)為text,需要繪制3條曲線,保持當(dāng)前圖
形窗口可使用_holdon命令。
3、用MATLAB繪制條形圖時(shí)可使用_bar(或barhj_________函數(shù),繪制柱狀圖,用以表示數(shù)據(jù)值分布情
況時(shí)可使用_hist函數(shù)。
4、MATLAB中用于控制不定次重復(fù)循環(huán)語句為while(whileend),假設(shè)在循環(huán)執(zhí)行過程中需
要終止該循環(huán)時(shí)采用語句為break。
5、對于MATLAB中多維陣列,在保持所有元素個(gè)數(shù)和內(nèi)容不變前提下可以使用.reshape_______函數(shù)
改變其尺寸和維數(shù);利用_cell_______函數(shù)可以定義單元陣列。
6、在MATLAB中,可甫內(nèi)部函數(shù)與工具箱函數(shù)產(chǎn)生矩陣,其中如果要產(chǎn)生單位陣可用_eye_____函
數(shù),產(chǎn)生對角陣可用_diag函數(shù),產(chǎn)生均勻分布隨機(jī)陣可用rand函數(shù)。
7、在MATLAB中,將含有小數(shù)數(shù)值轉(zhuǎn)換成字符串可用num2str命令,在字符串中查找子字符
串可用findstr命令。
二、選擇題(每題4分,共20分)
1、設(shè)A=[243;531;367],那么sum(A),length(A)和size(A)結(jié)果(D)
A.[101311]9[33]B.[9916]3[33]
C.[9916]9[33]D.[101311]3[33]
2、以下關(guān)于腳本文件和函數(shù)文件描述中不正確是(B)
A.去掉函數(shù)文件第一行定義行可轉(zhuǎn)變成腳本文件;
B.函數(shù)文件可以在命令窗口直接運(yùn)行;
C.腳本文件可以調(diào)用函數(shù)文件;
D.函數(shù)文件中第一行必須以function開場;
3、在CommandWindow窗口中分別輸入以下命令,對應(yīng)輸出結(jié)果錯(cuò)誤是C)
A.x=[-3⑵x=[-3-21012]B.x=zeros(l,2);x>0ans=[00]
C.y=diag(eye(3),2).^y=[00]D.3-2*rand(l,2)ans=[1.09972.5377]
4、對于矩陣B,統(tǒng)計(jì)其中大于A元素個(gè)數(shù),可以使用語句是(B)
A.length(B)-length(find(B<=A))B.sum(sum(B>A))
C.length(sum(B>A))D.sum(length(B>A))
5、strl='find',str2=,fund,,str3=,Ilikeyou',有:k1=sum(str1==str2),k2=sum(strrep(strl,'i','u')==str2),
k3=findstr(str3,,ke,),那么kl,k2,k3結(jié)果分別為:(B)
A.3,3,5B.3,4,5C.4,3,5D.3,4,6
三、程序填空(每空2分,共12分)
編寫MATLAB程序,用三階多項(xiàng)式來擬合數(shù)據(jù),在同一圖形窗口中繪制擬合前和擬合后兩條曲線,并
對圖形坐標(biāo)軸進(jìn)展控制。程序如下:
x=[l,2,3,4,5];y=[5.1,6.2,7.0,8.2,9.3];
p=polyfit(x,y,3)%采用三階多項(xiàng)式擬合
x2=l:0.1:5;
y2=y2=polyval(p,x2);%擬合后曲線
figure(1)
plot(x,y,,o,,x2,y2);%繪制曲線
ml=max([y,y2]);m2=min([y,y2]);
axis([06m2ml])%用axis調(diào)制坐標(biāo)軸,橫坐標(biāo)在[06]之間,且完全顯示圖形
_title('多項(xiàng)式曲線擬合');%加上標(biāo)題“多項(xiàng)式曲線擬合”
編寫MATLAB程序,對于用戶輸入向量或矩陣,計(jì)算其平均值:
_x=input('請輸入數(shù)據(jù)\n')或x=input('請輸入數(shù)據(jù)')________%提示輸入數(shù)據(jù)并保
右到x中,命令行顯示“請輸入數(shù)據(jù)"
y=reshape(x,l,prod(size(x)));
m=m=mean(y);%計(jì)算均值m
四、(8分)為解以下線性方程組,請寫出MALAB語言程序。
"4xi+2X3+3X4=9
3X2+2X3+3x4=8
2xi+X4=10
、X3-2X2+3x4=7
A=[4023;0323;200l;0-213;];%3分
b=[98107]';%2分
x=A\b;或x=inv(A)*b;%3分
另一種答案:
A=[4020;030-2;2201;3313];%3分
b=[98107];%2分
x=b/A;或x=b*inv(A);%3分
五、(10分)利用menu函數(shù)輸入選擇參數(shù)len,輸入菜單名稱為“selectannum",根據(jù)len取值分別給
變量x賦不同值。當(dāng)len=l時(shí),x值為值為4行3列全0矩陣;當(dāng)len=2時(shí),x值為3行4列全為5矩陣;
當(dāng)len=3時(shí),x值為5行3列均值為0,方差為1正態(tài)分布隨機(jī)矩陣;當(dāng)len=4時(shí),x值為字符串“notan
array";當(dāng)len為其它值時(shí),那么顯示“Error"。要求使用switch函數(shù)。
len=menufselectanum',T,'2','3','4','5');%3分
switchlen%switch語句格式寫對2分
y=zeros(4,3);%1分
case2
y=5.*ones(3,4);%1分
case3
y=5+randn(5,3);%1分
y='notanarray';%1分
otherwise
disp('Error')%1分
end
六、(15分)某混合信號有2個(gè)不同頻率確知信號,加上正態(tài)分布隨機(jī)噪聲構(gòu)成,噪聲功率為4,2個(gè)確
知信號分別為:M=10sin(2區(qū)/;〃//,)、$2=5sin(2乃力〃/工),其中信號頻率分別為工=2Hz、f2=5Hz,
采樣頻率為<=20Hz,采樣點(diǎn)128點(diǎn),即〃=0,1,2,…,127。
編程完成以下內(nèi)容:
(1)求出信號頻譜(用到函數(shù)有fft和abs)。
(2)以圖形方式比擬信號波形和信號頻譜,要求把圖形窗口分成2個(gè)子窗口,分別畫出:時(shí)域信號波形
(橫坐標(biāo)為“Time”,縱坐標(biāo)為“amplitude”,標(biāo)題為“信號時(shí)域與頻域波形”)、信號頻譜(橫坐標(biāo)
為"frequency(Hz)”,縱坐標(biāo)為"'frequencyspectral")。
fl=2;f2=5;fs=20;n=0:127;%1分
sl=10*sin(2*pi*fl*n/fs);%1分
s2=5*sin(2*pi*f2*n/fs);%1分
noise=2*randn(size(n));%2分
s=sl+s2+noise;%1分
sj=fft(s);%1分
m_f=abs(s_f);%1分或m_f=abs(fft(s))%2分
f=(O:length(s_f)-l)*fs/length(s_f)或f=n*fs/length(n)%2分
figure(l);
subplot(2,l,l);plot(n,s);%1分
title,信號時(shí)域與頻域波形)%1分
xlabel('Time');ylabel(1amplitude5);%1分
subplot(2,l,2);plot(f,m_f);%1分
xlabelCfrequency(Hz)^);ylabel(4frequencyspectraf);%1分
七、115分)某宿舍有4名同學(xué)期末考試成績?yōu)橄卤硭荆?/p>
姓名1name)liweiwangjunliuzhizhanglin
課程英語(eng)85838090
及成物理(phy)75846975
績數(shù)學(xué)(math)78927781
計(jì)算機(jī)83878278
(computer)
編程完成以下內(nèi)容:
基于表格內(nèi)容構(gòu)建構(gòu)造陣列,構(gòu)造名為student。
對每名同學(xué)成績按學(xué)分加權(quán)求出綜合測評分。其中eng(英語)、物理(phy)、math(數(shù)學(xué))學(xué)分分別為3452,
綜合測評分計(jì)算公式如下:x=-fWiXi,七為課程成績,叱為相應(yīng)學(xué)分,卬=£叱,〃為成績個(gè)數(shù)。
rv1=11=1
基于表格內(nèi)容構(gòu)建單元陣列,單元陣列名為student1,單位陣列中每一行保存一個(gè)學(xué)生信息,包括學(xué)生
姓名和學(xué)生各門課成績。通過訪問單元陣列,計(jì)算每一個(gè)學(xué)生平均分,將平均分作為一個(gè)新域,更新已
經(jīng)建立單元陣列。
最終得到單元陣列格式為:
姓名成績平均分
學(xué)生
1
生
學(xué)
2
生
學(xué)
生
學(xué)3
%構(gòu)建構(gòu)造陣列3分,也可用賦值語句逐個(gè)賦值
student=struct('name',{'1iwei''wangjun''liuzhi''zhanglin'),...
'eng;{[85757883],'phy'[83849287],'math'[80697782],'computer'[90758178]));
%加權(quán)求平均,%7分
w=[3452];
w=w/sum(w);
student_num=length(student);
syn_score=zeros(1,student_num);
fori=l:student_num
syn_score(i)=student(i).eng*w(1)+student(i).phy*w(2)...
+student(i).math*w(3)+student(i)puter*w(4);
end
構(gòu)建單元陣列%3分
student1={*liwei\[85757883];1wangjun\[83849287];*liuzhi\[80697782];(zhanglin\[907581
78]);
fori=l:length(studentl)
studentl{i,3}-mean(studentl{i,2});%更新正確2分
end
根本知識填空題(每空1分,共20分)
MATLAB通用命令中假設(shè)對函數(shù)功能和用法不熟悉,可用_help命令;顯示變量、陣列或文本時(shí),
可用_disp—命令;去除工作空間中變量時(shí),可用clear_____命令;保存和恢復(fù)工作空間,或者工作空
間中論定變量時(shí),可用_save和」oad____命令。
MATLAB系統(tǒng)提供了而個(gè)重要部件:simulink和toolboxes,它們在系統(tǒng)和用戶編程中,占據(jù)重要地位。
在MATLAB中,可用內(nèi)部函數(shù)與工真箱函數(shù)產(chǎn)生矩陣,其中如果要產(chǎn)生單位陣可用_eye______函數(shù),
產(chǎn)生全0陣可用_zeros—函數(shù),產(chǎn)生全1陣可用_ones—函數(shù),產(chǎn)生對角陣可用diag—函數(shù)。
在MATLAB圖形系統(tǒng)中,如果需要給已經(jīng)繪制好圖形加上柵格線,可以使用—gridon—命令,如果
需要在指定坐標(biāo)位置標(biāo)注文本時(shí)使用函數(shù)為_texto
用MATLAB繪制極坐標(biāo)中圖形時(shí)可以使用_polar_____函數(shù),繪制條形圖時(shí)可使用—bar(或barh)函數(shù),
繪制柱狀圖,用以表示數(shù)據(jù)值分布情況時(shí)才使用hist函數(shù)。
MATLAB中用于控制不定次重復(fù)循環(huán)語句為_while,假設(shè)在循環(huán)執(zhí)行過程中需要終止該循環(huán)時(shí)
采用語句為__break。
對于MATLAB中多維陣列,在保持所有元素個(gè)數(shù)和內(nèi)容不變前提下可以使用「eshape_函數(shù)改變其尺寸
和維數(shù);利用_cell—函數(shù)可以定義單元陣列。
二、選擇題(每題4分,共20分)
設(shè)A=[l23;345;567;789],那么sum(A),length(A)和size(A)結(jié)果(D)
A.[162024]3[43]B.[6121824]3[34]
C.[6121824]4[43]D.[162024]4[43]
設(shè)X=[0:0.5*pi:pi],Y=cos(X)且Z=sin(X),那么Y.*Z,Y*Z'和cat(l,Y,Z)結(jié)果分別為(A)
A.[000]0[10-l;010]B.[000]0[10-1010]
C.[000][010;000;0-10][10-l;010]
D.[010;000;0-10][000][10-1010]
對于矩陣A,統(tǒng)計(jì)其中大于T元素個(gè)數(shù),可以使用語句是(C)
A.length(A)-length(find(A<=T))B.length(sum(A>T))
C.sum(sum(A>T))D.sum(length(A>T))
假設(shè)多維陣列A=rand(5,5,4),下面對A進(jìn)展各種不同操作,其中錯(cuò)誤是(B)
A.sin(A).*cos(A)B.Al(l)=A
C.sum(A)+length(A)D.Al{2}=num2cell(A)
strl=,sum,,str2=,sun,,str3='XiDian123',有:k1=sum(str1==str2),k2=sum(strrep(strl,,m,,,n,)==str2),
k3=findstr(str3,,an,),那么kl,k2,k3結(jié)果分別為:(B)
A.2,2,5B.2,3,5C.3,2,4D.2,3,4
三、程序填空(每空3分,共15分)
編寫MATLAB程序,在同一圖形窗口中繪制yl和y2兩條曲線,并對圖形坐標(biāo)軸進(jìn)展控制。程序如下:
x=-3:0.1:3;
yl=2*x+5;y2=x.A2-3*x;
plot(x,yl);%繪制曲線yl
①ho1doni%保持曲線y1
plot(x,y2);%繪制曲線y2
ml=max([yl,y2]);m2=min([yl,y2]);
—②axis([-33m2ml]);%用axis調(diào)制坐標(biāo)軸,橫坐標(biāo)在[-3刃之間,且完全顯示圖形
—③xlabel('時(shí)間’);ylabel('幅度');;%參加圖形注釋,橫坐標(biāo)為“時(shí)間”,縱坐標(biāo)為“幅
度〃編寫MATLAB程序,對于用戶輸入向量或矩陣,計(jì)算其平均值和方差:
___④x=input('請輸入數(shù)據(jù)\n')或x=input('請輸入數(shù)據(jù)');%提示輸入數(shù)據(jù)并
保存到x中,命令行顯示“請輸入數(shù)據(jù)"
y=reshape(x,1,prod(size(x)));
m=mean(y);%計(jì)算均值m
___?v=var(y)或1/(length(y)T)*(sum((y-m).-2));%計(jì)算方差v
四、(10分)為解以下線性方程組,請寫出MALAB語言程序。
"3Xi+X2+5x4=2
6X2+7X3+3x4=4
4X2+3X3=7
2xi-X2+2X3+6x4=8
A=[3105;0673;0430;2-126;];%3分
b=[2478],;%3分
x=A\b;或x=inv(A)*b或x=pinv(A)*b;%4分
另一種答案:
A=[3002;164-1;0732;5306];%3分
b=[2478];%3分
x=b/A;或x=b*inv(A);%4分
五、(10分)利用menu函數(shù)和switch函數(shù)編寫腳本文件。輸入選擇ch,當(dāng)ch=l時(shí),產(chǎn)生[-1,1]之間均
勻分布隨機(jī)數(shù);ch=2時(shí),產(chǎn)生大小為5x5對角陣,其中每個(gè)元素在[0,1]之間均勻分布;當(dāng)ch=3時(shí),產(chǎn)
生均值為0,方差為1正態(tài)隨機(jī)數(shù);當(dāng)ch=4時(shí),產(chǎn)生均值為5,方差為4大小為5x5正態(tài)隨機(jī)矩陣;當(dāng)
ch=5時(shí),直接退出菜單。
ch=menu('selectanum',T,2',3,'4',5);%3分
switchch%switch語句格式寫對2分
case1
y=2*rand-l;%1分
case2
y=diag(rand(l,5));%1分
case3
y=randn;%1分
case4
y=5+2*randn(5,5);%1分
case5
return;%1分
end
六、(10分)某宿舍有4名同學(xué),3門課程期末考試成績?nèi)缦卤硭?
姓名(name)limingwangleiliujunzhangxiao
成績(score)857578838492806977907581
要求編程完成以下內(nèi)容:
基于表格內(nèi)容構(gòu)建構(gòu)造陣列,構(gòu)造名為student。通過訪問構(gòu)造陣列,計(jì)算每一個(gè)學(xué)生平均分,將平均分
作為一個(gè)新域,更新已經(jīng)建立構(gòu)造陣列。
最終得到構(gòu)造陣列可表示為
student
.irame
.Jcore
,mean
基于表格內(nèi)容建立二維單元陣列,單位陣列中每一行保存一個(gè)學(xué)生信息。通過訪問單元陣列,計(jì)算每一
個(gè)學(xué)生平均分,將平均分作為一個(gè)新域,更新已經(jīng)建立單元陣列。
最終得到單元陣列格式為:
姓名成績平均分
學(xué)生
1
生
學(xué)
2
生
學(xué)
生
學(xué)3
4
%構(gòu)建構(gòu)造陣列3分,也可用賦值語句逐個(gè)賦值
student=struct('name',{'liming','wanglei','liujun'/zhangxiao'},—
'score',{[857578],[838492],[806977],[907581]});
fori=1:length(student)
student(i).mean=mean(student(i).score);%更新正確2分
end
%構(gòu)建單元陣列3分,也可用賦值語句逐個(gè)賦值
student1={liming*1,[857578];,wanglei,,[838492];'liujun;[806977];...
7hangxiao,,[907581]};
fori=l:length(studentl)
studentl{i,3}=mean(studentl{i,2});%更新正確2分
end
或者可由struct直接轉(zhuǎn)換到cell
student1=struct2cell(student);%4分
student1=squeeze(studentl);%刪除單點(diǎn)維
student1=student1';%結(jié)果正確1分
七、(15分)某一過程中通過測量得到:
t0
y
編程完成以下內(nèi)容:
(1)分別采用三階和四階多項(xiàng)式對數(shù)據(jù)進(jìn)展擬合;(提示:采用polyfit進(jìn)展多項(xiàng)式擬合;調(diào)用格式為p=
polyfit(t,y,n),n為多項(xiàng)式階數(shù),p為得到多項(xiàng)式系數(shù))
(2)比擬擬合效果,要求把圖形窗口分成兩個(gè)子窗口,子窗口1繪制出原始測量值和三階多項(xiàng)式擬合后
曲線,子窗口2繪制出原始測量值和四階多項(xiàng)式擬合后曲線;
(3)根據(jù)時(shí)刻點(diǎn)測量值,計(jì)算兩種擬合方法均方誤差(MSEL
1〃
MSE^-Y^-y,)2*,其中%為上面表中原始測量值,力為擬合后估計(jì)值。
n,=i
t=[00.81.02.05.0];
y=[1.0-4.0];%1分
pl=polyfit(t,y,3);%1分
p2=polyfit(t,y,4);%1分
x=[0:0.1:5];
yl=polyval(pl,x);%1分
y2=polyval(p2,x);%1分
subplot(1,2,1);%subplot語句格式寫對1分
plot(t,y,'or,x,yl);%也可使用holdon命令,正確畫出第一個(gè)子圖2分
subplot(l,2,2);
plot(t,y,,o,,x,y2);%正確畫出第二個(gè)子圖2分
i=intl6(l+t/0.1);%ori二fix(t/O.l)+l;能找到正確估計(jì)值位置3分
msel=mean((y-yl(i)).A2);%正確計(jì)算均方誤差1分
mse2=mean((y-y2(i)).A2);%正確計(jì)算均方誤差1分
選擇題(每題5分,共30分)
1、工作空間workspace中有變量a,b,c,按如下步驟進(jìn)展操作,(1)將變量a存成數(shù)據(jù)文件adata.mat,(2)
去除工作區(qū)間所有變量,(3)再將數(shù)據(jù)文件調(diào)入工作區(qū)間,下面(A)組命令是正確:
Asaveadataa;clear;loadadata;Bsaveadataa-ascii;clear;loadadata;
Csaveadata;clearall;loadadata;Dsaveadata;clearall;load-asciiadata;
2在CommandWindow窗口中分別輸入以下命令,對應(yīng)輸出結(jié)果正確是(C)
A.j=sqrt(-1)j—1B.x=ones(l,2);x>0ans=l
C.y=diag(eye(2)).9y=[l1]D.rand(l,3)ans=[0.95011.23110.6068]
3、對應(yīng)MATLAB提供繪制平面曲線、離散序列、三維曲線、三維網(wǎng)格曲線、等高線圖函數(shù)為(B)
A.plot,stem,mesh,plot3,surfB.plot,stem,plot3,mesh,contour
C.plot,hist,mesh,plot3,contourD.plot,hist,plot3,meshc,contour
4以下對條件語句、分支語句、固定循環(huán)次數(shù)語句、不定循環(huán)次數(shù)語句關(guān)鍵字排序正確是(B)
A.ifelseend;forend;switchcaseend;whileend;
B.ifelseend;switchcaseend;fbrend;whileend;
C.forend;ifelseend;whileend;switchcaseend;
D.whileend;fbrend;switchcaseend;ifelseend;
5.在MATLABEditor中輸入以下語句:x=[l3;24];y=norm(x(:,2));z=det(x);u=diag(x);v=polyval(u』);運(yùn)行
后,在CommandWindow中對應(yīng)y,z,u,v輸出結(jié)果為(A)
A.5-2[1;4]5B.52[1;2]3C.42[1;2]3D.4-2[1;4]5
6.strl-MatlabisausefulltooF;str2=strtok(str1),stmum=length(str2),
Iogvec=strcmpi(str2,,matlab,),k=findstr(str2,,a,)
以下對變量str2,strnum,logvec,k值描述正確是:D
A'M'10口B.'Matlab'60[25]C.11[]D.'Matlab561[25]
二、程序填空和改錯(cuò),改錯(cuò)處用箭頭標(biāo)記(每空5分,共20)
拋物線方程為》=以2+”,輸入c后,繪制該曲線,尋找曲線最小值和對應(yīng)x值。小明編寫程序如下:
clc;clear;closeall;
c=input(*c-);
a=l;
x=-2:0.1:2;
xnum二length(x)orxnum二size(x,2);%(1)對變量xnum賦為數(shù)組x個(gè)數(shù)
y=zeros(l,xnum);
y=a*x八2+C*XL尸a*x.八2+C*X;_____%(2)按照函數(shù)形式對y賦值
figure;
plot(x,y)%(3)繪制曲線
xlabel('x');ylabel(V);
(ymin,Imin]=min(y);
xmin=x(ymin)Lxmin=x(Imin);%(4)找到最小函數(shù)值對應(yīng)x值
三、(10分)A=[l23;456;789],利用menu函數(shù)輸入選擇參數(shù)OprNo,OprNo=l時(shí),將A按列向變?yōu)?
XI列矢量,記為B;OprNo=2時(shí),將A前兩列元素對應(yīng)相加,得到C為3X1列矢量;OprNo=3時(shí),
求A對角元素之和(提示用trace函數(shù))。
clc;clear;closeall;
A=[l23;456;789];
OprNo=menu(,OprSel71,/2,,,31);
switchOprNo
case1
B=reshape(A,prod(size(A)),1)%2分
case2
0A(:,1)+A(:,2)%2分
case3
D=trace(A)%2分
otherwise
errorC無效操作);%不作要求
end
四、(10分)牛頓迭代法是方程尋根一種方法,考慮〃x)=/+2x-3,方程/(%)=0牛頓迭代公式為
4
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年基本建設(shè)貸款合同模板
- 學(xué)生文明行為倡導(dǎo)計(jì)劃
- 懷集一中20年高三實(shí)驗(yàn)班二輪復(fù)習(xí)回歸教材訓(xùn)練
- 信封采購合同樣本
- 2025年綠化工程施工合同樣本
- 上海長寧金杯出租合同樣本
- 2025簽訂合同后離職規(guī)定詳解
- 冰箱使用合同樣本
- 2025年住建部《建設(shè)工程施工合同示范文本》解析
- 2025酒店管理各類運(yùn)營合同
- 16J914-1 公用建筑衛(wèi)生間
- 教學(xué)課件:《新時(shí)代新征程》
- 廢氣治理設(shè)施運(yùn)行管理規(guī)程、制度
- 全球松子分析預(yù)測報(bào)告
- 英國FBA超重標(biāo)簽
- JJF1101-2019環(huán)境試驗(yàn)設(shè)備溫度、濕度校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 環(huán)境藝術(shù)與室內(nèi)設(shè)計(jì)專業(yè)室內(nèi)設(shè)計(jì)手繪表現(xiàn)技法教學(xué)課件(圖文)
- 混凝土縫之宅
- TSG11-2020 鍋爐安全技術(shù)規(guī)程
- 警察查緝戰(zhàn)術(shù)講義
- 人教版八年級物理下冊 第八章 運(yùn)動和力 練習(xí)題(含答案)
評論
0/150
提交評論