matlab练习题
- 格式:pdf
- 大小:64.96 KB
- 文档页数:2
matlab试题及答案# MATLAB试题及答案一、选择题1. MATLAB的基本数据单位是:A. 矩阵B. 向量C. 标量D. 数组答案:A2. 下列哪个命令可以用来绘制函数图形?A. `plot`B. `graph`C. `draw`D. `chart`答案:A3. MATLAB中,以下哪个是正确的矩阵转置操作?A. `transpose(A)`B. `A'`C. `A^T`D. `flip(A)`答案:B二、简答题1. 简述MATLAB中矩阵的基本操作。
答案:在MATLAB中,矩阵是最基本的数据结构,可以进行加、减、乘、除等基本运算。
矩阵的创建可以使用方括号`[]`,例如`A = [1 2;3 4]`。
矩阵的转置使用单引号`'`,例如`A'`。
矩阵的求逆使用`inv`函数,例如`inv(A)`。
2. MATLAB中如何实现循环结构?答案:MATLAB中实现循环结构主要有两种方式:`for`循环和`while`循环。
`for`循环用于已知迭代次数的情况,例如:```matlabfor i = 1:5disp(i);end````while`循环用于迭代次数未知的情况,例如:```matlabi = 1;while i <= 5disp(i);i = i + 1;end```三、计算题1. 给定矩阵A和B,请计算它们的乘积C,并求C的行列式。
A = [1 2; 3 4]B = [5 6; 7 8]答案:首先计算矩阵乘积C:```matlabC = A * B;```然后计算C的行列式:```matlabdetC = det(C);```结果为:```matlabC = [19 22; 43 50]detC = -16```2. 编写一个MATLAB函数,计算并返回一个向量的范数。
答案:```matlabfunction norm_value = vector_norm(v)norm_value = norm(v);end```四、编程题1. 编写一个MATLAB脚本,实现以下功能:- 随机生成一个3x3的矩阵。
习题:1, 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2, 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
3, 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
(应用sin,cos,tan.cot)5, 将矩阵⎥⎦⎤⎢⎣⎡=7524a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574(2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []2965318772546, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。
(应用poly,polyvalm)7, 求解多项式x 3-7x 2+2x +40的根。
(应用roots)8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
(应用poly,polyvalm)9, 计算多项式9514124234++--x x x x 的微分和积分。
(应用polyder,polyint ,poly2sym)10, 解方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66136221143092x 。
(应用x=a\b)11, 求欠定方程组⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡5865394742x 的最小范数解。
(应用pinv)12, 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=943457624a ,计算a 的行列式和逆矩阵。
(应用det,inv)13, y =sin(x ),x 从0到2π,∆x =0.02π,求y 的最大值、最小值、均值和标准差。
试题1.“数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。
重复进行上述运算,最终会出现一个神秘的数,请编程输出这个神秘的数。
clear;a=input('请输入一个四位正整数:');str_a=num2str(a); %将a转化为一个字符串b_min=str2double(sort(str_a)); %形成最小数b_max=str2double(sort(str_a,'descend')); %形成最大数b=b_max-b_min; %求最大数与最小数之差while (b~=a)a=b;str_a=num2str(a); %将a转化为一个字符串b_min=str2double(sort(str_a)); %形成最小数b_max=str2double(sort(str_a,'descend')); %形成最大数b=b_max-b_min; %求最大数与最小数之差endb试题2.将数字1、2、3、4、5、6填入一个2行3列的表格中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。
请编写程序求出按此要求可有几种填写方法。
a(1)=1;a(6)=6;count=0; %用来计数b=perms('2345'); %产生2345的全排列[m,n]=size(b);for i=1:mtemp=b(i,:);a(2)=str2double(temp(1));a(3)=str2double(temp(2));a(4)=str2double(temp(3));a(5)=str2double(temp(4));if ((a(4)>a(2))&&(a(4)>a(3))&&(a(5)>a(3)))count=count+1;c=reshape(a,2,3); %将a向量转化为2*3矩阵输出disp(c);endenddisp(['共有',num2str(count),'种填写方法']); %输出填写方法的种数试题3.编写成绩排序程序。
matlab期末考试题及答案MATLAB期末考试题及答案一、选择题(每题2分,共20分)1. MATLAB中用于创建向量的函数是:A. vectorB. arrayC. linspaceD. ones答案:D2. 下列哪个命令可以计算矩阵的行列式?A. detB. diagC. traceD. rank答案:A3. 在MATLAB中,以下哪个选项是用于绘制三维图形的?A. plotB. plot3C. barD. scatter答案:B4. MATLAB中,用于计算向量范数的函数是:A. normB. meanC. medianD. std答案:A5. 下列哪个命令可以用于创建一个二维数组?A. array2dB. matrixC. create2dD. make2d答案:B6. MATLAB中,用于求解线性方程组的函数是:A. solveB. linsolveC. equationD. linprog答案:A7. 以下哪个函数可以用于生成随机数?A. randB. randomC. randnD. randi答案:A8. MATLAB中,用于实现循环结构的关键字是:A. loopB. forC. whileD. repeat答案:B9. 下列哪个命令可以用于绘制函数图形?A. plotB. graphC. drawD. functionplot答案:A10. MATLAB中,用于计算矩阵特征值的函数是:A. eigB. eigenvalueC. characteristicD. eigen答案:A二、简答题(每题5分,共30分)1. 简述MATLAB中矩阵的基本操作有哪些?答案:矩阵的基本操作包括矩阵的创建、矩阵的加法、减法、乘法、转置、求逆、求行列式等。
2. MATLAB中如何实现条件语句?答案:MATLAB中实现条件语句主要使用if-else结构,也可以使用switch-case结构。
3. 请解释MATLAB中的函数定义方式。
matlab开卷考试题及答案MATLAB开卷考试题及答案一、选择题(每题2分,共20分)1. MATLAB中用于创建一个3x3的单位矩阵的命令是:A. `eye(3)`B. `ones(3)`C. `zeros(3)`D. `identity(3)`答案:A2. 下列哪个函数用于计算矩阵的逆?A. `inv()`B. `det()`C. `eig()`D. `trace()`答案:A3. MATLAB中,用于绘制二维图形的函数是:A. `plot()`B. `surf()`C. `mesh()`D. `bar()`答案:A4. 如何在MATLAB中计算向量的范数?A. `norm()`B. `abs()`C. `length()`D. `size()`答案:A5. MATLAB中,用于创建一个随机数矩阵的函数是:A. `rand()`B. `randi()`C. `randn()`D. `randperm()`答案:A6. 下列哪个命令用于在MATLAB中求解线性方程组?A. `solve()`B. `fsolve()`C. `fzero()`D. `linsolve()`答案:A7. MATLAB中,用于计算矩阵的行列式的函数是:A. `det()`B. `trace()`C. `eig()`D. `inv()`答案:A8. 如何在MATLAB中创建一个全1的3x3矩阵?A. `ones(3,3)`B. `eye(3,3)`C. `zeros(3,3)`D. `rand(3,3)`答案:A9. MATLAB中,用于计算矩阵的特征值的函数是:A. `eig()`B. `eigs()`C. `svd()`D. `qr()`答案:A10. 下列哪个函数用于计算矩阵的奇异值分解?A. `eig()`B. `svd()`C. `qr()`D. `lu()`答案:B二、填空题(每题3分,共30分)1. MATLAB中,用于创建一个3x3的零矩阵的命令是 `____`。
matlab考试题一、选择题1. 在MATLAB中,下列哪个命令可以用于绘制三维曲面图?A. plot3B. surfC. meshD. contour32. 如何在MATLAB中创建一个名为“myArray”的数组,其元素从1到100?A. myArray = 1:100;B. myArray = array(1:100);C. array = {1, 2, 3, ..., 100};D. array = 1:100, name = 'myArray';3. 在MATLAB中,如何计算矩阵A和矩阵B的点积?A. A * BB. A.* BC. dot(A, B)D. A + B4. 若要在MATLAB中定义一个函数,使得输入参数x的平方和x的和相加,应该如何编写该函数?A. function y = x^2 + xB. function y = sum(x^2, x)C. function y = x^2 + sum(x)D. function y = x.^2 + x5. 在MATLAB中,如何清空当前工作空间的所有变量?A. clear allB. clearC. delete allD. clear workspace二、填空题1. 在MATLAB中,使用 ________ 命令可以导入外部数据文件。
2. 要创建一个从10到20的行向量,可以使用 MATLAB 代码________。
3. 在MATLAB中,使用 ________ 函数可以计算矩阵的行列式。
4. 若要在MATLAB中绘制一个单位圆,可以使用 ________ 命令。
5. 为了在MATLAB中保存工作,可以使用 ________ 命令。
三、简答题1. 请简述MATLAB的主要功能和应用领域。
2. 描述在MATLAB中如何进行矩阵运算。
3. 说明在MATLAB中创建和使用函数的基本步骤。
4. 讨论在MATLAB中进行数据分析和可视化的常用方法。
matlab测试题答案一、填空题1. MATLAB中的循环结构包括for循环、while循环和______循环。
答案:break2. 在MATLAB中,用于定义和创建矩阵的关键字是______。
答案:zeros3. MATLAB中,用于计算矩阵特征值的函数是______。
答案:eig4. 若要在MATLAB中进行字符串拼接,应使用运算符______。
答案:strcat5. 在MATLAB中,用于生成线性空间向量的函数是______。
答案:linspace二、选择题1. MATLAB中用于绘制二维图形的命令是______。
A. plotB. histC. pieD. bar答案:A2. 若想在MATLAB中清除所有变量,应使用命令______。
A. clear allB. clearC. clcD. close all答案:A3. 在MATLAB中,用于求解线性方程组的函数是______。
A. solveB. fsolveC. ode45D. inv答案:A4. 以下哪个函数可以用于MATLAB中的多项式拟合?A. polyfitB. convC. polyvalD. roots答案:A5. MATLAB中用于保存工作空间变量的命令是______。
A. saveB. loadC. saveasD. clear答案:A三、简答题1. 请简述MATLAB中M文件的两种主要类型及其区别。
答:MATLAB中的M文件主要分为函数文件和脚本文件。
函数文件通常包含一个或多个函数定义,每个函数都以关键字function开始,并以end结束。
脚本文件则不包含函数定义,而是由一系列命令组成,这些命令按顺序执行。
2. 说明在MATLAB中如何导入和导出数据。
答:在MATLAB中,导入数据可以使用多种方式,如通过文件导入向导(File Import Wizard),或使用load、xlsread等函数直接读取数据。
导出数据时,可以使用save、xlswrite等函数将数据写入文件。
填空题1、标点符号; %—用来表示该行为注释行。
可以使命令行不显示运算结果,2、x为0~4pi,步长为0.1pi的向量,使用命令 x=0:0.1*pi:4*pi创建。
3、输入矩阵A=,使用全下标方式用A(2,2)取出元素“-5”,使用单下标方式用A(5)取出元素“-5”。
4、符号表达式sin(2*a+t)+m中独立的符号变量为t。
5、M脚本文件和M函数文件的主要区别是M脚本文件没有函数定义和M函数文件有函数定义_______。
6. 设x是一维数组,x的倒数第3个元素表示为x(_end-2_)设y为二维数组,要删除y的第34行和48列,可使用命令y(34,:)=[] ;y(:,48)=[];7. 将变量x以Ascii文本格式存储到文件fname.txt,应使用命令save _x ;8. 在while 表达式, 语句体, End 循环语句中,表达式的值非零时表示循环条件为真,语句体将被执行,否则跳出该循环语句;9.要从键盘读入一个字符串并赋值给变量x,且给出提示“Who is she?”,应使用命令x=input(‘Who is she?’,’s’);10.设A=和B=和C=均为m*n矩阵,且存在于WorkSpace中,要产生矩阵D=,可用命令D=(A-C)/B.^C,计算可用命令det(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];写出下列各指令运行的结果。
A+B;A.*B;A==B ;ans= [2,2,6;5,10,0;7,9,11]ans= [1,0,9;4,25,0;0,8,18]ans= [1,0,1;0,1,1;0,0,0]13.已知A是矩阵,求A的对角矩阵函数是 diag ;求A的下三角矩阵函数是 tril。
1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
Matlab 基础练习题常量、变量、表达式1、 MATLAB 中,下面哪些变量名是合法的?( )(A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。
(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( )(A )eps (B )none (C )zero (D )exp4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放一个中文字符‘啊’需要占用2个字节。
( 错,都是2个字节 )5、 判断:MA TLAB 中,i 和j ( 对 )6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。
( 错,后面还有很多位小数 )7、 在MA TLAB 中,若想计算的51)3.0sin(21+=πy 值,那么应该在MA TLAB 的指令窗中输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。
8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字节。
9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。
数组1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序的逆序排列输出,应该使用下面的( )指令。
(A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB的命令是( )。
(A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A)3、 在MATLAB 中,用指令x=1:9生成数组x 。
Consider the following LTI system:
x (t +1)=Ax (t )+v 1(t )
y (t )=Cx (t )+v 2(t )
(1)where A =26640:960:50:270:28 0:1250:96 0:08 0:070
00:850:970000:993775;C =[0200]v 1(t )is a white noise with zero mean value and variance V 1=B v B T v ,B v =p 15[0:5001]T ,and
v 2(t )is a white noise with zero mean value and variance V 2=2000.The noises v 1(t )and v 2(t )are uncorrelated.Assume that the initial state x (1)is a random vector with zero mean value and variance
P 1=E x (1)x (1)T =0:5I 4.
Problem:Design the following predictors/…lters:
-Dynamic Kalman 1-step predictor.
-Steady-state Kalman 1-step predictor.
-Steady-state Kalman …lter.
-(Optional)Dynamic Kalman 1-step predictor in predictor/corrector form.
Compare the estimates provided by these predictors/…lters by means of graphical representations and evaluation of the Root Mean Square Error (RMSE ).
Main steps:
(1)Create a Matlab program for the simulation of the system (1).Use a for loop in order to implement the simulation.In the program,the noise v 1(t )can be generated as v1(:,t)=Bv.*randn(4,1);the noise v 2(t )can be generated as v2(t)=sqrt(V2)*randn;
(2)Simulate the system for t =1;2;:::;N;N =2000starting from random initial conditions:x (1)=p 0:5randn (4;1).Plot the four state signals on four di¤erent …gures.
Dynamic Kalman 1-step predictor (K )
(3)Insert in the for loop the predictor K de…ned by
K (t )=AP (t )C T [CP (t )C T +V 2] 1
P (t +1)=AP (t )A T +V 1 K (t )[CP (t )C T +V 2]K (t )T
b y (t j t 1)=C b x (t j t 1)e (t )=y (t ) b y (t j t 1)
b x (t +1j t )=A b x (t j t 1)+K (t )e (t )Initialize the variables as:b x (1j 0)=0;P (1)=P 1.
(4)Simulate the predictor K .Add to the …gures generated at step (2)the plots of the predicted states b x k (t j t 1),k =1;:::;4.
Steady-state Kalman 1-step predictor (K 1)
(5)Insert in the for loop the predictor K 1de…ned by
b y (t j t 1)=C b x (t j t 1)e (t )=y (t ) b y (t j t 1)
b x (t +1j t )=A b x (t j t 1)+Ke (t )where K is obtained using the kalman Matlab command (outside the for loop).
(6)Simulate the predictor K 1.Add to the …gures generated at step (2)the plots of the predicted states b x k (t j t 1),k =1;:::;4.
Steady-state Kalman …lter (F 1)
(7)Insert in the for loop the …lter F 1de…ned by
b x (t j t )=b x (t j t 1)+K 0e (t )
1
where b x(t j t 1)is the prediction provided by K1and K0is obtained using the kalman Matlab command.
(8)Simulate the…lter F1.Add to the…gures generated at step(2)the plots of the estimated states
b x k(t j t),k=1;:::;4.
(Optional)Dynamic Kalman1-step predictor in predictor/corrector form(K pc)
(9)Insert in the for loop the predictor K pc de…ned by
K0(t)=P(t)C T[CP(t)C T+V2] 1
P0(t)=[I n K0(t)C]P(t)
P(t+1)=AP0(t)A T+V1
b y(t j t 1)=C b x(t j t 1)
e(t)=y(t) b y(t j t 1)
b x(t j t)=b x(t j t 1)+K0(t)e(t)
b x(t+1j t)=A b x(t j t)
Initialize the variables as:b x(1j0)=0;P(1)=P1.
(10)Simulate the predictor K pc.Add to the…gures generated at step(2)the plots of the predicted states b x k(t j t 1),k=1;:::;4.
RMSE evaluation
The RMSE can be evaluated as
RMSE=v u u t1N N0N X t=N0+1[x k(t) b x k(t)]2
where b x k(t)indicates either b x k(t j t 1)in the case of prediction or b x k(t j t)in the case of…ltering,k= 1;:::;4,and N0is a time after which the…lter transient is past.
(11)Evaluate the RMSE errors obtained by the predictors/…lters.
2。