MATLAB 基础自测,实战演练
一、填空题
1、在MATLAB中,函数文件中的变量是 ____ 变量。定义全局变量是函数间传递信息的一种手段,可以用global命令定义。
答案:局部
2、设A=[1,2;3,4],B=[5,6;7,8],则A*B= ___, A.*B=____ 。答案:A*B= [19,22;43,50](矩阵运算乘法)------ A.*B=[5,12;21,32](矩阵对应元素相乘)
3、100X100的矩阵a,它的第30行30列个元素对应的序号是 ___ ,它的序号是60的元素对应的下标是 ______。答案:2930(第30行30列==第30行30个,matlab开始下标从1开始,So29*100+30)[1,60]([row,col],第一行第60个))
4、向量[2,0,0,3,-1]所代表的多项式是 ______ 。答案:2X4+3X-1(【2*X4+0*X3+0*X2+3X1-1】从前往后依次降幂,最后一个为常量)
5、产生一个全0的100阶矩阵a,置a的50行60列元素为5,命令窗口的语句是 ______ 。答案:a=zeros(100); a(50,60)=5
6、产生一个-1~1之间均匀分布的3阶随机矩阵a,并求它的逆矩阵b。命令窗口的语句是 _____ 。答案:a=-1+2*rand(3)(公式:a+(b-a)rand(n)--产生a到b直接的n阶矩阵);b=inv(a)
7、产生一个均值为-0.5,方差为1的正态分布的3X10随机矩阵a,并求它的转置矩阵b和共轭转置矩阵c。命令窗口的语句是 ____ 。答案:a=-0.5+sqrt(1)*randn(3,10); a.';a'
8、函数文件由 ___ 语句引导。在函数定义时,函数的输入输出参数称为形式参数。在调用函数时,输入输出参数称为实际参数。答案:function;
二、选择题
1、在MATLAB命令窗口运行以下语句,回车后结果等于0的是( )。
A.>>uint8(60.76) B.>>uint8(-60.76)
C.>>uint8(1234.567) D.>>uint8(0.76)
答案:B;
题解:A=61,B=0,C=255,D=1(int8的范围为(0~255)超过255的截取为255,小于0的截取为0,0~255的小数部分四舍五入进入整数位);
2、下列不可作为MATLAB合法变量名的是( )。
A._Bas B.a123 C.H_h D.xyz_2a
答案:A;
题解:变量名必须以英文字母开头。且不能使用关键字如for,end,if...
3、建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数,相应的命令是( )。
A. A=round(100+200rand(5,6)) B.A=ceil(200+100rand(5,6))
C.A= floor(100+300rand(5,6)) D.A=fix(100+100rand(5,6))
答案:D;
题解:根据公式-->(公式:a+(b-a)rand(n)--产生a到b直接的n阶矩阵)---- A的范围(100~300);B的范围(200~300);C的范围(100~400);D的范围(100~200)
round() 函数将结果四舍五入到最近的整数。;ceil() 函数将小数部分向上取整;floor() 函数将小数部分向下取整;fix() 函数将结果向零取整(截断小数部分)到最近的整数。
4、在命令行窗口中分别输入下列命令,对应输出结果正确的是( )。
A.命令x=[-2:2],结果x=[-2 -1 0 1 2]
B.命令x=zeros(1,2);x>=0,结果ans=1
C.命令y=diag(eye(3),1),结果y=[0 0]
D.命令[-2:2]+30*eye(size([-2:2])),结果ans=[-2 -1 0 1 2]
答案:A;
题解:A=[-2 -1 0 1 2];B=[0,0];C=[0;0];D=[28, -1,0,1,2];
30*eye(size([-2:2])=30*eye(1,5)=[30,0,0,0,0]
5、subplot(2,2,2)是指( )的子图。A.两行两列的左下图 B.两行两列的右下图
C.两行两列的左上图 D.两行两列的右上图
答案:D;
题解:subplot(m,n,p)顺序为从左到右从上到下
三、应用题
1、一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。编写脚本文件实现。(10分)
答案:
for ii = 100:999
a=rem(ii,10); %个位
b=rem(fix(ii/10),10); %十位
c=fix(ii/100); %百位
if ii==power(a,3)+power(b,3)+power(c,3)
disp(ii);
end
end
运行截图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/49aef3c919b1423ea278f5a3152da911.png#pic_center)2、以下程序拟实现在同一图形窗口中绘制y1和y2两条曲线,并对图形坐标轴进行控制,请把程序补充完整。(10分)
x=-3:0.1:3;
y1=2x+5;
y2=x.^2-3x;
plot(x,y1) %绘制曲线y1
_____________ ;①
plot(x,y2) %绘制曲线y2
m1=max([y1,y2]);
m2=min([y1,y2]);
_________ ;②
%用axis调制坐标轴,横坐标在[-3,3]之间,纵坐标在m1和m2之间
答案:
1.hold on; %添加新绘图时保留原绘图
2.axis([-3,3,m2,m1]) ; %限制x轴-3到3,限制y轴m2到m1
答案:
x=-3:0.1:3;
y1=2*x+5;
y2=x.^2-3*x;
plot(x,y1) %绘制曲线y1
hold on; %添加新绘图时保留原绘图
plot(x,y2) %绘制曲线y2
m1=max([y1,y2]);
m2=min([y1,y2]);
axis([-3,3,m2,m1]) ; %限制x轴-3到3,限制y轴m2到m1
运行截图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/adc6913fe0b847ddb8e07ebd825612cb.png#pic_center)3、分别用直接解法、LU分解矩阵法、QR分解矩阵法求解法求解下列线性方程组。分析它们的实现条件。(10分)
答案:
直接解法:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]
b=[13,-9,6,0]
x=A\b'
运行截图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/8cebf767488947b9a5ecb40c55d638cf.png#pic_center)LU分解矩阵法:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]
b=[13,-9,6,0]
[L,U]=lu(A)
x=U\(L\b')
运行截图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2577cbf8a9524ae998446b90decec079.png#pic_center)QR分解矩阵法求解法:
A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0];
[Q,R]=qr(A);
x=R\(Q\b')
运行截图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ffb3087536b470386875003c70bc3a3.png#pic_center)4、编程实现:
(1)某检测参数f随时间t的采样结果如表1所示,分别用线性插值方法和最近点插值方法计算t=2,12,22,32,42,52时的f值;绘图:原始数据点用+标注,线性插值计算得到的点用*标注,最近点插值计算得到的点用d(菱形)标注。(5分)
(2)绘出的图形如图1所示。请问:由图1判断,对f和t的关系而言用哪种插值方法更合适?(5分)
待做
如有错误,请多指教