matlab基础测习题(带答案) 下载本文

精心整理

Matlab基础练习题

常量、变量、表达式

1、 MATLAB中,下面哪些变量名是合法的?( (A)_num (B)num_ (C)num- ) (D)-num )函数。 2、 在MATLAB中,要给出一个复数z的模,应该使用( (A)mod(z) (B)abs(z) (C)double(z) ) (D)angle(z) 3、 下面属于MATLAB的预定义特殊变量的是?( (A)eps (B)none (C)zero (D)exp 4、 判断:在MATLAB的内存工作区中,存放一个英文字符'a'需要占用1个字节,存放一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MATLAB中,i和j都是虚数单位?1,它们之间没有什么区别。( 对

) 6、 判断:MATLAB中,pi代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 2sin(0.3?)1?57、 在MATLAB中,若想计算的y1?值,那么应该在MATLAB的指令窗中输入的MATLAB指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。

8、 在MATLAB中,a=1,b=i,则a占_8__个字节,b占_16_个字节,c占________

字节。

9、 在MATLAB中,inf的含义是__无穷大__,nan的含义是__非数(结果不定)___。

数组

精心整理

精心整理

1、 在MATLAB中,X是一个一维数值数组,现在要把数组X中的所有元素按原来

次序的逆序排列输出,应该使用下面的(

)指令。

(A)X[end:1] (B)X[end:-1:1] (C)X(end:-1:1) (D)X(end:1) 2、 在MATLAB中,A是一个字二维数组,要获取A的行数和列数,应该使用的

MATLAB的命令是(

)。

(A)class(A) (B)sizeof(A) (C)size(A) (D)isa(A) 3、 在MATLAB中,用指令x=1:9生成数组x。现在要把x数组的第二和第七个元素都赋值为0,应该在指令窗中输入( (A)x([27])=(00) (C)x[(2,7)]=[00] ) (B)x([2,7])=[0,0] (D)x[(27)]=(00) 4、 在MATLAB中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这

时,若在指令窗中输入指令b=A(:,2)',那么,MATLAB输出的结果应该是( ) (B)b=-2-101 (A)b=-3 -2 -1 (C)b=-5-13 (D)b=-5-214 5、 在MATLAB中,A=1:9,现在执行如下指令L1=~(A>5),则MATLAB的执行结果应该是L1=___111110000___。 6、 在MATLAB中,要求在闭区间[0,5]上产生50个等距采样的一维数组b,请写出具体的MATLAB指令___linspace(0,5,50)___。

7、 在MATLAB中,A=[0:1/2:2]*pi,那么sin(A)=___[010-10]_____。

8、 在MATLAB中,A=[1,2,3;4,5,6;7,8,0],B=[2,1,6;8,5,2;14,2,1]。写出下面MATLAB

语句执行的结果:(为节省篇幅,把矩阵写成mat2str的形式) (1) A==B

精心整理

[000;010;000]

精心整理 (2) A.*B (3) A(:)' (4) A(1,:)*B(:,3)

[2218;322512;98160] [147258360] 13

9、 在MATLAB中,写出下面MATLAB语句执行的结果: (1) clear,A=ones(2,6) A= 111111 111111 (2) A(:)=1:2:24 A= 159131721 3711151923 (3) A([1:3:7]) ans= 1713 (4) diag(diag(A)) ans= 10 07

(5) B=A(:,end:-1:1) B= 211713951 2319151173 精心整理

精心整理

10、 请编写一段matlab程序,完成以下功能: (1) 生成一个100行,200列的二维随机数组;

A=rand(100,200);

(2) 找出数组A中所有大于0.49且小于0.51的元素的单下标;

Idx=find(A(:)>0.49&A(:)<0.51)

(3) 数组A中满足(2)中的条件的元素有多少个? length(Idx) (4) 求出数组A中满足(2)中的条件的元素的和,并求出这些元素的平均值;

sum(A(Idx)),m=mean(A(Idx)) (5) 将(4)求出的平均值赋值给数组A中满足(1)中的条件的每个元素。

A(Idx)=m; 11、 请编写一段matlab程序,完成以下功能: (1) 找出100到200之间的所有质数,将这些质数存放在一个行数组里;

X=100:200; p=X(isprime(X)) (2) 求出这些质数之和; sum(p) (3) 求出100到200之间的所有非质数之和(包括100和200)。 sum(X(~isprime(X)))

12、 y??0.7?sinx,编写一段matlab程序,要求如下

(1?x2)????2cosx?(1) 在[0,2?]区间,每隔0.01取一x数值,计算出相应的y的函数值;

x=0:0.01:2*pi;

精心整理

精心整理

y=(0.7+2*cos(x)./(1+x.^2)).*sin(x)

(2) 根据MATLAB计算出的数据,找出在[0,2?]内该函数的极小值的坐标。

[my,idx]=min(y) x(idx)

数值计算

1、

在MATLAB中,A是一个10×10数组,我们把该数组看成矩阵的话,则此矩阵的行列式值=___det(A)__,此矩阵的逆矩阵(如果存在的话)=_inv(A)___。(用MATLAB的函数表示) 2、

求解下列方程组: A=[113-1;01-11;1122;1-11-1]; b=[2;1;4;0]; x=A\\b A=[34 -7 -12;5-742;108-5;-65-210]; b=[4;-3;9;-8]; xyzw=A\\b 3、

求有理分式R??x2?2x?2??5x3?2x2?1??3x3?x??x3?0.5?的商多项式和余多项式 n=conv([3010],[3000.5]); d=conv([12-2],[5201]); [q,r]=deconv(n,d)

4、

一元多项式p?2x4?3x2?4x,写出表示p的MATLAB语句__p=[20-340]__,求

p?0的根的MATLAB语句是____roots(p)__,求x?4.3时p的数值的MATLAB语

句是__polyval(p,4.3)___。 精心整理

精心整理

程序设计

1、 M脚本文件和函数文件的有什么区别?

最主要的差别是,函数有自己的独立工作区,和外界的信息交换通过输入输出参数实现;而脚本没有独立工作区,其直接使用宿主程序的工作区,并把结果留在宿主程序中。

2、 掌握下面程序设计中常用的函数及关键字: input pause warning for nargin nargout switch case otherwise end try while if elseif else catch break continue end 633、 分别用for和while循环语句计算K??2i的程序。还请写出一种避免循环的计算i?0程序。(不要用symsum函数) K=0; fori=0:63

K=K+i; end K=0;i=0; whilei<=63

K=K+i; i=i+1;

end

K=sum(2.^(0:63))

4、 MATLAB提供了两种循环结构,一种是for循环结构,另一种是__while_循环结精心整理

精心整理

构。

5、 编写M函数求和s?1?2?3??n functions=mysum(n) s=sum(1:n);

6、 编写M函数求积p?1?2?3??n functionp=mysum(n) p=prod(1:n); 7、 编写M函数列出从整数a到整数b之间能被3整除的奇数。 functionr=odds3(a,b) r=a:b; r=r(mod(r,2)==1&mod(r,3)==0) 8、 编写M脚本列出从100到200不能被3整除同时也不能被7整除的数。 X=100:200; X(mod(X,3)~=0&mod(X,7)~=0) 9、 一张纸厚0.06mm且足够大,试问将纸对折多少次,其厚度将超过10000m? 按题意,就是要求2^n*0.06E-3>=10000,所以 n=ceil(log(10000/0.06e-3)/log(2)) 10、 编写MATLAB脚本输出“水仙花数”及水仙花数的个数。所谓“水仙花数”是一个3位数,其各位数字的立方和等于该数本身。例如153?13?53?33。 c=0; forn=100:999

m=[fix(n/100)fix(mod(n,100)/10)mod(n,10)]; ifn==sum(m.^3), 精心整理

精心整理

fprintf('%i=%i^3+%i^3+%i^3\\n',n,m); c=c+1; end end

fprintf('\\n共%i个水仙花数\\n',c) 输出结果: 153=1^3+5^3+3^3 370=3^3+7^3+0^3 371=3^3+7^3+1^3 407=4^3+0^3+7^3 共4个水仙花数 绘图 1、 MATLAB中,绘制三维曲面图的函数是( (A)surf (B)plot (C)subplot ) (D)plot3 )函数。 2、 MATLAB中,要绘制三维空间曲线,应该使用( (A)polar (B)plot (C)subplot (D)plot3 3、 在MATLAB中,A是一个1000行2列的二维数值数组,现在要把A的第一列数据作为横坐标,把A的第二列数据作为纵坐标,画出一条曲线,试写出相应的MATLAB语句_____plot(A(:,1),A(:,2))______。

4、 MATLAB绘图指令中的__subplot_指令允许用户在同一个图形窗里布置几个独立

的子图。

5、 编写一段matlab程序,绘制出二元函数z?精心整理

2sinxsiny三维网线图,要求如下: xy精心整理

(1)x,y的取值范围为?9?x?9,?9?y?9; (2)x,y每隔0.5取一个点;

(3)图形的线型和颜色由MATLAB自动设定 [x,y]=meshgrid((-9:0.5:9)+eps);%加eps避免出现0/0 z=2*sin(x).*sin(y)./(x.*y); mesh(x,y,z) 6、 编写一段matlab程序,绘制出函数y1?xsin(),y2?sin(2x)图形的MATLAB语句,

要求如下: (1)x的取值范围为?3?x?3; (2)x每隔0.01取一个点; (3)y1和y2的图形要画在同一幅图里; (4)图形的线型和颜色由MATLAB自动设定。 x=(-3:0.01:3)+eps;%加eps避免出现除0警告 y1=x.*sin(1./x); y2=sin(2*x); plot(x,y1,x,y2) 1x符号计算 1、 在MATLAB中,能正确的把x、y定义成符号变量的指令是( (A)symxy (C)symsx,y

(B)symx,y

) (D)symsxy

2、 要清除MATLAB工作空间中保存的变量,应该使用_clear_指令。 3、 在MATLAB中,指令findsym(sym('sin(w*t)'),1)的执行结果是__w__。 4、 在MATLAB中,写出把x和y定义为符号变量的相应语句__symsxy_。 精心整理

精心整理

5、 求解下列方程组的符号解: A=[113-1;01-11;1122;1-11-1]; b=[2;1;4;0]; x=sym(A)\\b

A=[34 -7 -12;5-742;108-5;-65-210]; b=[4;-3;9;-8]; xyzw=sym(A)\\b 6、 求极限: (1) 求函数y??1?x?在x?0处的极限; >>symsx >>limit((1+x)^(1/x),0) ans= exp(1) (2) 求函数y?>>symsx >>limit(sin(3*x)/tan(5*x),0) ans= 3/5 (3) 求函数y?>>symsxn

>>limit(n*x/3^x,inf) ans=

精心整理

nx在趋向正无穷处的极限; 3xsin3x在x?0处的极限; tg5x1x精心整理

0

ln2x(4) 求函数y?3在趋向正无穷处的极限;

x>>symsx

>>limit(log(x)^2/x^3,inf) ans= 0 7、 求导数: (1) 求函数y?>>symsx >>y=1/x^2-3*x+3; >>diff(y,50) ans= (2) 求函数y?asinbec?ta在t?b处的3阶导数; symstabc y=a*sin(b*exp(c^t)+t^a); simple(subs(diff(y,t,3),t,b)) 8、 求不定积分: >>symsx >>int(1/sin(x)^3) ans=

-1/2/sin(x)^2*cos(x)+1/2*log(csc(x)-cot(x)) >>symsxa

精心整理

1?3x?3的50阶导数; 2x?t?精心整理

>>int(1/(a^2-x^2)) ans=

-1/2/a*log(a-x)+1/2/a*log(a+x) >>symsx

>>int((sqrt(x^2-3)-sqrt(x^2+3))/sqrt(x^4-9)) ans= (x^4-9)^(1/2)/(x^2-3)^(1/2)/(x^2+3)^(1/2)*asinh(1/3*3^(1/2)*x)-1/(x^2+3)^(1/2)*(x^4-9)^(1/2)/(x^2-3)^(1/2)*log(x+(x^2-3)^(1/2)) 9、 求定积分及广义积分 >>symsxa >>int(sqrt(x^2+a),-2,2) ans= 2*(4+a)^(1/2)+1/2*a*log(2+(4+a)^(1/2))-1/2*a*log(-2+(4+a)^(1/2)) >>symsx >>int(sin(x)^2*cos(x)^2,-pi,pi) ans= 1/4*pi >>symsxy >>int(int(x^2+y^2,y,1,x^2),1,2) ans= 1006/105

10、 求下面的积分,给出50位精度的数值: >>symsxy

精心整理

精心整理

>>J=int(int(sin(x)^2+sin(y)^2,y,1,x^2),1,2); >>vpa(J,50) ans=

11、 级数求和:

?n?1?n?1??z?1?n22nn??3n?1??z?1?n?1??n?n??1?>>symszn n?!zn2?x?1????k?02k?1?x?1?2k?1

?x?0?>>symsum((z-1)^n/(n^2*2^n),n,1,inf) ans= (1/2*z-1/2)*hypergeom([1,1,1],[2,2],1/2*z-1/2) >>symszn >>symsum((3*n+1)*(z-1)^n,n,1,inf) ans= (4*z-4)*(-1/(z-2)+3/4/(z-2)^2*(z-1)) >>symszn >>symsum(n*(-1)^(n+1)*z^n,n,1,inf) ans= z/(z+1)^2 >>symsxpositive >>symsk

>>simple(symsum(2/(2*k+1)*((x-1)/(x+1))^(2*k+1),k,0,inf)) ans=

log(-(1+((x^2-2*x+1)/(x^2+2*x+1))^(1/2))/(-1+((x^2-2*x+1)/(x^2+2*x+1))^(1/

精心整理

精心整理

2)))

精心整理