matlab基础练习题带答案Word格式文档下载.docx
《matlab基础练习题带答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《matlab基础练习题带答案Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
9、在MATLAB中,inf的含义是__无穷大__,nan的含义是__非数(结果不定)___。
数组
1、在MATLAB中,X是一个一维数值数组,现在要把数组X中的所有元素按原来次序的逆序排列输出,应该使用下面的()指令。
(A)X[end:
1](B)X[end:
-1:
1](C)X(end:
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)(B)x([2,7])=[0,0]
(C)x[(2,7)]=[00](D)x[(27)]=(00)
4、在MATLAB中,依次执行以下指令:
clear;
A=ones(3,4);
A(:
)=[-6:
5];
这时,若在指令窗中输入指令b=A(:
2)'
,那么,MATLAB输出的结果应该是()
(A)b=-3-2-1(B)b=-2-101
(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[2218;
322512;
98160]
(3)A(:
)'
[147258360]
(4)A(1,:
)*B(:
3)13
9、在MATLAB中,写出下面MATLAB语句执行的结果:
(1)clear,A=ones(2,6)
A=
111111
(2)A(:
)=1:
2:
24
159131721
3711151923
(3)A([1:
3:
7])
ans=
1713
(4)diag(diag(A))
10
07
(5)B=A(:
end:
B=
211713951
2319151173
10、请编写一段matlab程序,完成以下功能:
(1)生成一个100行,200列的二维随机数组;
A=rand(100,200);
(2)找出数组A中所有大于0.49且小于0.51的元素的单下标;
Idx=find(A(:
)>
0.49&
)<
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、
,编写一段matlab程序,要求如下
(1)在
区间,每隔0.01取一
数值,计算出相应的
的函数值;
x=0:
0.01:
2*pi;
y=(0.7+2*cos(x)./(1+x.^2)).*sin(x)
(2)根据MATLAB计算出的数据,找出在
内该函数的极小值的坐标。
[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、求有理分式
的商多项式和余多项式
n=conv([3010],[3000.5]);
d=conv([12-2],[5201]);
[q,r]=deconv(n,d)
4、一元多项式
,写出表示
的MATLAB语句__p=[20-340]__,求
的根的MATLAB语句是____roots(p)__,求
时
的数值的MATLAB语句是__polyval(p,4.3)___。
程序设计
1、M脚本文件和函数文件的有什么区别?
最主要的差别是,函数有自己的独立工作区,和外界的信息交换通过输入输出参数实现;
而脚本没有独立工作区,其直接使用宿主程序的工作区,并把结果留在宿主程序中。
2、掌握下面程序设计中常用的函数及关键字:
inputpausewarningnarginnargout
forwhileifelseifelseswitchcaseotherwiseendtry
catchbreakcontinueend
3、分别用for和while循环语句计算
的程序。
还请写出一种避免循环的计算程序。
(不要用symsum函数)
K=0;
fori=0:
63
K=K+i;
end
i=0;
whilei<
=63
i=i+1;
K=sum(2.^(0:
63))
4、MATLAB提供了两种循环结构,一种是for循环结构,另一种是__while_循环结构。
5、编写M函数求和
functions=mysum(n)
s=sum(1:
n);
6、编写M函数求积
functionp=mysum(n)
p=prod(1:
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(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位数,其各位数字的立方和等于该数本身。
例如
。
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;
\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程序,绘制出二元函数
三维网线图,要求如下:
(1)
,
的取值范围为
;
(2)
每隔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程序,绘制出函数
图形的MATLAB语句,要求如下:
每隔0.01取一个点;
(3)y1和y2的图形要画在同一幅图里;
(4)图形的线型和颜色由MATLAB自动设定。
x=(-3:
3)+eps;
%加eps避免出现除0警告
y1=x.*sin(1./x);
y2=sin(2*x);
plot(x,y1,x,y2)
符号计算
1、