m a t l a b考试题答案Last revision on 21 December 2020
2012年春季学期
MATLAB 课程考查题
姓名:孙少华学号:学院:电气学院专业:测控技术与仪器
一、必答题:
1,简述MATLAB组成部分
答:Matlab系统主要由五个部分构成:
(1)开发环境(development Environment):为MATLAB用户或程序编制员提供的一套应用工具和设施。由一组图形化用户接口工具和组件集成:包括MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器;
(2) MATLAB数学函数库(Math Function Library):数学和分析功能在MATLAB 工具箱中被组织成8个文件夹。
(3) elmat 初步矩阵,和矩阵操作。
(4) elfun 初步的数学函数。求和、正弦、余弦和复数运算等
(5) specfun 特殊的数学函数。矩阵求逆、矩阵特征值、贝塞尔函数等;
(6) matfun 矩阵函数-用数字表示的线性代数。
(7) atafun 数据分析和傅立叶变换。
(8) polyfun 插值,多项式。
(9) funfun 功能函数。
(10) sparfun 稀疏矩阵。
(11)MATLAB 语言:(MATLAB Language)一种高级编程语言(高阶的矩阵/数组语言),包括控制流的描述、函数、数据结构、输入输出及面对对象编程;
(12)句柄图形:(Handle Graphics) MATLAB制图系统具有2维、3维的数据可视化,图象处理,动画片制作和表示图形功能。可以对各种图形对象进行更为
细腻的修饰和控制。允许你建造完整的图形用户界面(GUI),以及建立完
整的图形界面的应用程序。制图法功能在MATLAB工具箱中被组织成5个文
件夹:
(13) graph2d 二维数图表。
(14) graph3d 三维图表。
(15) specgraph 专业化图表。
(16) graphics 制图法。
(17) uitools 图形用户界面工具。
(5)应用程序接口:(Applied Function Interface) MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。
2,说明使用M文件编辑/调试器的方法和优点
答:M文件编辑/调试器建立M文件的一般步骤:(normal process of M- file creating):(1)打开文件编辑器:(Opening the file editor) 最简单的方法是在操作桌面的工具栏上选择新建文件键(New M- File)或打开已有文件键(Open File),也可以在命令窗口输入命令edit建立新文件或输入edit filename, 打开名为filename 的M文件;(2)编写程序内容:(Compose the program content) 编写新的文件或修改已有文件;(3)保存文件:(save file) 文件运行前必须完成保存操作,与一般的文件编辑保存操作相同;
(4)运行文件:(running file) 在命令窗口输入文件名即可运行。如要在编辑器中直接完成运行,可在编辑器的Debug菜单下save and run选项,或按Run快捷键,最快捷的方法是直接按F5键执行运行。
优点:
命令文件是 M文件中最简单的一种,是可用于自动重复执行的一组MATLAB命令和函数组合,不需输出输入参数,用M文件可以调用工作空间已有的变量或创建新的变量。运行过程中产生的变量都是全局变量。
建立一个命令文件等价于从命令窗口中顺序输入文件里的命令,程序不需要预先定义,只要依次将命令编辑在命令文件中,再将程序保存成为扩展名为.m的M文件即可。
运行命令文件时,只需在命令窗口键入文件名即可。
如果M文件的第一个可执行行以function开始,便是函数文件,每一个函数文件定义一个函数。函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。
将文件存盘,缺省状态下自动存储名为相应的函数名的(.m)文件。这样只要接受一个输入参数便可计算返回一个输出参数,与其他MATLAB函数一样使用。
3,存储在工作空间中的数组能编辑吗如何操作
答:存储在工作空间中的数组能编辑。Matlab中有内存数组编辑器(Array Editor),提供对数值型或字符型二维数组的显示和编辑功能,对其他数据类型都不能编辑。通过工作空间窗口打开所选的变量时,该编辑器启动。通过对该编辑器的操作可实现对工作窗口中数据的编辑。
4,在MATLAB中有几种获得帮助的途径
答:matlab中提供四种帮助途径:
(1)帮助浏览器:提供方便快捷的帮助信息获取途径和图文并茂的帮助内容,是通过勾选Desktop菜单中的Help选项打开一个独立的交互式帮助浏览器。
(2)help 命令:在命令窗口输入help命令,也是MATLAB寻找在线帮助的一种方便而快捷的方式。(图示、操作演示)
(3)lookfor 命令:(lookfor commend) 可以根据用户提供的完整或不完整的关键词,搜索出一组与之相关的命令或函数。(图示、操作演示)
(4)模糊查询:(fuzzy Inquiry) 用户只须输入命令的前几个字母,然后键入Tab键MATLAB 就会列出所有以这个字母开始的命令。
5,在进行算术运算时,数组运算和矩阵运算各有什么特点,如何区分两种运算左除与右除有什麽区别
答:MATLAB 提供的两种运算方式:
(1)普通的数组运算方式:(Array computation) 在数组中对应元素之间进行运算;
(2)矩阵运算方式:(matrix computations) 将标量当作1×1阶矩阵,一维数组当作一行或一列的矢量(即1×n阶或 n×1阶的矩阵),二维数组当作m×n阶矩
阵,然后按照矩阵的运算规则进行运算。
两种运算的区分:
二者输入形式和书写方法相同,差别仅在于使用不同的运算符号,执行不同的计算过程,数组的运算是对应元素之间的运算,而矩阵运算是根据矩阵的运算规则进行。
矩阵在进行乘除运算时与通常的运算符号相同(*, /, \ ),而数组在进行乘除运算时要在通常的符号前加“.”,如:“.* ” 和“./ ” (或“.\ ”)
左除与右除的区别:
矩阵除法 (Matrix division)
条件:a矩阵是非奇异方阵,则a\b(左除)和b/a(右除)都可以实现。a\b等效于a 矩阵的逆左乘b矩阵,即a\b=inv(a)*b, b/a等效于a矩阵的逆右乘b矩阵,即
b/a=b*inv(a).
通常x=a\b 是a*x=b 的解,x=b/a 是x*a=b的解。一般a\ b≠b/a,
右除与左除的关系为:(b/a)’=(a’\b’)
数组的除法(Array division)
条件:a与b必须具有相同的维数。符号“. \ ”或“. / ”,运算结果相同,a.\b 表示b中的元素分别除以a中的对应元素,即z(i,j)=x(i,j)\y(i,j)=y(i,j)/x(i,j)。
6,命令文件与函数文件的主要区别是什么
答:命令文件是 M文件中最简单的一种,是可用于自动重复执行的一组MATLAB命令和函数组合,不需输出输入参数,用M文件可以调用工作空间已有的变量或创建新的变量。运行过程中产生的变量都是全局变量。
建立一个命令文件等价于从命令窗口中顺序输入文件里的命令,程序不需要预先定义,只要依次将命令编辑在命令文件中,再将程序保存成为扩展名为.m的M文件即可。
运行命令文件时,只需在命令窗口键入文件名即可。
如果M文件的第一个可执行行以function开始,便是函数文件,每一个函数文件定义一个函数。函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。
将文件存盘,缺省状态下自动存储名为相应的函数名的(.m)文件。这样只要接受一个输入参数便可计算返回一个输出参数,与其他MATLAB函数一样使用。
7, GUI开发环境中提供了哪些方便的工具各有什么用途
答:MATLAB提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。
MATLAB提供了一套可视化的创建图形用户接口(GUI)的工具,包括:
*布局编辑器(Layout Edtor)-------在图形窗口中加入及安排对象。布局编辑器是可以启动用户界面的控制面板,上述工具都必须从布局编辑器中访问,用guide命令可以启动,或在启动平台窗口中选择GUIDE来启动布局编辑器。
*几何排列工具(Alignment Tool)-----调整各对象相互之间的几何关系和位置
*属性编辑器(Property Inspector)-----查询并设置属性值
*对象浏览器Object Browser)-----用于获得当前MATLAB图形用户界面程序中所有的全部对象信息,对象的类型,同时显示控件的名称和标识,在控件上双击鼠标可以打开该控件的属性编辑器。
*菜单编辑器(Menu Editor)-----建立窗口菜单条的菜单和任何构成布局的弹出菜单在MATLAB中, GUI的设计是以 M文件的编程形式实现的,GUI的布局代码存储在M 文件和MAT文件中,而在MATLAB6中有了很大的改变,MATLAB6将GUI的布局代码存储在 FIG文件中,同时还产生一个M文件用于存储调用函数,在M文件中不再包含GUI的布局代码,在开发应用程序时代码量大大减少。
1.布局编辑器(Layout editor):用于从控件选择板上选择控件对象并放置到布局区
去,布局区被激活后就成为图形窗口。在命令窗口输入GUIDE命令或点击工具栏中的guide图标都可以打开空白的布局编辑器,在命令窗口输入GUIDE filename 可打开一个已存在的名为filename图形用户界面。
(1)将控件对象放置到布局区
a.用鼠标选择并放置控件到布局区内;
b.移动控件到适当的位置;
c.改变控件的大小;
d.选中多个对象的方法;
(2)激活图形窗口
选Tools菜单中的Activate Figure项或点击工具条上的ActivareFigure按钮, 在激活图形窗口的同时将存储M 文件和FIG文件,如所建立的布局还没有进行存储,用户界面开发环境将打开一个Save As对话框,按输入的文件的名字,存储一对同名的M文件和带有.fig扩展名的FIG文件。
(3)运行GUI程序
在命令窗口直接键入文件名或用openfig, open或hgload命令运行GUI程序。
(4)布局编辑器参数设置
选File菜单下的Preferences菜单项打开参数设置窗口,点击树状目录中的GUIDE,既可以设置布局编辑器的参数。
(5)布局编辑器的弹出菜单
在任一控件上按下鼠标右键,会弹出一个菜单,通过该菜单可以完成布局编辑器的大部分操作。
2.几何位置排列工具(Alignment tool)
用于调节各控件对象之间的相对位置。
3.用属性编辑器设置控件属性(Set attributes of controller with Property Inspector)
在属性编辑器中提供了所有可设置的属性列表并显示出当前的属性。
(1)属性编辑器(Opening Property Inspector):三种方法:1. 用工具栏上的图标打开;2. 从View菜单中选择Property Inspector菜单项;3. 在按鼠标右键弹出的Property Inspector菜单中选择菜单项。
(1)使用属性编辑器(Using Property Inspector)
a.布置控件
b.定义文本框的属性
c.定义坐标系
d.定义按钮属性
e.定义复选框
4.菜单编辑器(Menu Editor):包括菜单的设计和编辑,菜单编辑器有八个快捷键,可以利用它们任意添加或删除菜单,可以设置菜单项的属性,包括名称(Label)、标识(Tag)、选择是否显示分隔线(Separator above this item)、是否在菜单前加上选中标记(Item is checked)、调用函数(Callback)。
5.对象浏览器(Object Browsers):用于浏览当前程序所使用的全部对象信息,可以在对象浏览器中选种一个或多个控件来打开该控件的属性编辑器。
8, if语句有几种表现形式
答:(1) if—end语句(simple if statement)
if 表达式
语句体
End
进行逻辑逻辑判断,当计算的表达式结果为真(非零)时执行语句体,否则跳过if 结构。
(2)if—else--end语句
if 表达式
语句体1;
else
语句体2:
end
当计算的表达式结果为真时执行语句体1,结果为假时执行语句体2。
例:判断学生是否通过学业。
if ((attendance>= & (grade>=60))
pass=1;
else
fail=1;
end
(1)if—elseif—end语句
if 表达式 1
语句体1;
elseif 表达式2
语句体2;
else
语句体3;
end
9,轴对象是使用的最多的图形对象之一,那么轴对象是哪个对象的子对象,又是那些对象的父对象
答:轴对象在图形窗口中定义一个区域,并确定该区域中子对象的方向,轴是图形窗口的子对象,又是图象、灯光、线、块、表面和文字的父对象。
10,什么是图形句柄图形句柄有什么用途
答:图形对象的句柄是MATLAB显示图形数据和建立图形用户接口的基础,每个对象从产生时起就被赋予了一个唯一的标识,这种标识就是该对象的句柄。利用句柄就可以操纵一个已经存在的图形对象的特性(属性)。
Set 和get函数用于设置和获取指定句柄对象的属性值。
可以为对象设置句柄名称,如果没有设置句柄,可用gcf 命令获得当前图形窗口的句柄,使用gca命令获得当前坐标轴的句柄,使用gco命令获得当前对象的句柄。11,已知三维图形视角的缺省值是方位角为°,仰角为30°,写出将方位角顺时针旋转20角的命令。
答:view,30)。
12,什么是Simulink简述Simulink的步骤。
答: MATLAB Simulink是一个动态仿真系统,用于对动态系统进行仿真和分析,预先模拟实际系统的特性和响应,根据设计和使用要求,对系统进行修改和优化。
Simulink提供了图形化用户界面,只须点击鼠标就可以轻易的完成模型的创建、调试和仿真工作,用户不须专门掌握一种程序设计语言。
Simulink 可将系统分为从高级到低级的几个层次,每层又可以细分为几个部分,每层系统构建完成后,将各层连接起来就可构成一个完整的系统。
模型创建完成后,可以启动系统的仿真功能分析系统的动态特性,其内置的分析工具包括各种仿真算法、系统线性化、寻求平衡点等。仿真结果可以以图形方式在示波器窗口显示,也可将输出结果以变量形式保存起来,并输入到MATLAB 中以完成进一步的分析。
Simulink 可以仿真线性和非线性系统,并能创建连续时间、离散时间或二者混合的系统。支持多采样频率系统。
Simulink 的三大步骤(procedure of Simulink):
1、模型创建与定义、( Model creating and definition)
2、模型的分析、(Model analyzing)
3、模型的修正。(Model modifying)
Simulink 的运行:(Running of Simulink)
1、运行Simulink:命令窗口下点击Simulink 图标(或在命令窗口键入Simulink 命令)→Simulink Library Browser (浏览器)→simulink 树状列表形式的模块库(包含simulink 模块库中的各种模块及其它Toolbox 和 Blockset 中的模块)
2、选择建模模块:展开树状列表,用鼠标点击所需类别的模块项, 所选模块类的具体模块库就在右侧的列表框中显示出来,提供建模使用。也可以在输入栏中键入模块名并点击Find 按钮进行查询。
3、打开模型创建窗口:(open the window of mode creating)。
在工具栏中选择“建立新模型”的图标,弹出名为Untitled 的空白窗口,选择Open 窗口可以打开存于硬盘中已建的模型,完成模型的运行或修改。
13, 计算??????=572396a 与??
????=864142b 的数组乘积。 答:a=[6,9,3;2,7,5];
b=[2,4,1;4,6,8];
c=a.*b
c =
12 36 3
8 42 40
14 对于B AX =,如果??????????=753467294A ,??????????=282637B ,求解
X 。
答:A=[4,9,2;7,6,4;3,5,7];
B=[37,26,28];
X=A/B
X =
15,求解多项式x 3-7x 2+2x +40的根。
答:a=[1 -7 2 40];
x=roots(a)
x =
16,求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
答:x=8;
y=(x-1)*(x-2)*(x-3)*(x-4)
y =
840
17,计算多项式除法(3x 3+13x 2+6x +8)/(x +4)。
答:a=[3 13 6 8];
b=[1 4];
[c,d]=deconv(a,b)
c =
3 1 2
d =
0 0 0 0
18,计算多项式9514124234++--x x x x 的微分和积分。
答:syms f x;
f=4*x^4-12*x^3-14*x^2+5*x+9;
df=diff(f)
intf=int(f)
df =
16*x^3 - 36*x^2 - 28*x + 5
intf =
(4*x^5)/5 - 3*x^4 - (14*x^3)/3 + (5*x^2)/2 + 9*x
19,有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。
答:x0=0:pi/5:4*pi;
y0=sin(x0).*exp(-x0/10);
x=0:pi/10:4*pi;
y=spline(x0,y0,x)
plot(x0,y0,'or',x,y,'k')
y =
Columns 1 through 5
Columns 6 through 10
Columns 11 through 15
Columns 16 through 20
Columns 21 through 25
Columns 26 through 30
Columns 31 through 35
Columns 36 through 40
Column 41
20,用符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为[0,2]。
答:syms t;
x=sin(3*t).*cos(t);
y=sin(t).*cos(3*t);
subplot(1,2,1);
ezplot(x,[0,2*pi]);
grid;
subplot(1,2,2);
ezplot(y,[0,2*pi]);
grid;
21,有一组测量数据满足-at
y,t的变化范围为0~10,用不同的线型和标记点画出
e
=
a=、a=和a=三种情况下的曲线,并添加标题-at
e
y,用箭头线标识出各曲线a的取值,
=
添加标题-at
y和图例框。
=
e
答:t=0::10;
a=;
y1=exp(-a*t);
a=;
y2=exp(-a*t);
a=;
y3=exp(-a*t);
subplot(1,2,1);
plot(t,y1,'-',t,y2,':',t,y3);
title('y=exp(-a*t)','FontSize',20);
xlabel('t','FontSize',16);ylabel('y','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
subplot(1,2,2);
plot(t,y1,'o',t,y2,'*',t,y3,'.');
title('y=exp(-a*t)','FontSize',20);
xlabel('t','FontSize',16);ylabel('y','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
text(4,exp*4),'\leftarrowa=','FontSize',16);
22,建立一个简单模型,用信号发生器产生一个幅度为2V、频率为的正弦
波,并叠加一个的噪声信号,将叠加后的信号显示在示波器上并传送到
工作空间。
答:
23编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
答:clear
clc
m=input('êèyêym=');
n=0;
while (m~=1)
if rem(m,2)==0
m=m/2;
else m=m*3+1;
m
end
n=n+1;
end
n
24, 矩阵??????????-=943457624a ,计算a 的行列式和逆矩阵。
答:a=[4,2,-6;7,5,4;3,4,9];
deta=det(a)
inva=inv(a)
deta =
-64
inva =
25用符号函数法求解方程a t 2+b*t +c=0。
答:syms a b c t;
s=a*t^2+b*t+c;
solve(s,t)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a) 二、选答题(在下列题中选答5题):
2.????????=)sin()log(12
x x e x x a f ax , 用符号微分求df/dx 。 答:syms a x;
f=[a,x^2,1/x;exp(a*x),log(x),sin(x)];
df=diff(f)
df =
[ 0, 2*x, -1/x^2]
[ a*exp(a*x), 1/x, cos(x)]
3. 22y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口的方法在同 一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。 答:subplot(2,2,1);
x=-2:2;
y=-2:2;
z=x.*exp(-x.^2-y.^2);
plot3(x,y,z);
grid on ;
title('三维线图 ');
xlabel('x');ylabel('y');zlabel('z');
subplot(2,2,2);
syms x y ;
z=x*exp(-x^2-y^2);
ezmesh(z,[-2,2,-2,2],40);
title('网线图');
xlabel('x');ylabel('y');zlabel('z');
subplot(2,2,3);
syms x y ;
z=x*exp(-x^2-y^2);
ezsurf(x,y,z,[-2,2,-2,2],40);
title('表面图');
xlabel('x');ylabel('y');zlabel('z');
subplot(2,2,4);
syms x y ;
z=x*exp(-x^2-y^2);
ezsurf(x,y,z,[-2,2,-2,2],80);
shading interp ;
daspect([3 3 1])
axis tight
light('position',[-10,-10,21])
title('带渲染的表面图');
xlabel('x');ylabel('y');zlabel('z');
4.用subplot 语句在一个图形窗口上开多个大小不等的子窗口进行绘图并添加注 释,见图。图形具体内容及各图所占位置可自选。
答:subplot(2,3,[1,4]);
yn=randn(10000,1);
hist(yn,20);
xlabel('直方图');
subplot(2,3,3);
syms x y
ezsurfc(y/(1+x^2+y^2),[-5,5,-2*pi,2*pi],35)
view(-65,26)
xlabel('三维图');
subplot(2,3,2);
t=0:.01:2*pi;
h4=polar(t,sin(2*t).*cos(2*t));
xlabel('极坐标图');
subplot(2,3,[5,6]);
x=0::12;
y=exp*x).*sin(x)+;
plotyy(x,y,x,y,'plot','stem');
xlabel('带标记点的线图');
annotation(gcf,'textbox','String',{'多窗口绘图示例
'},'FontSize',16,'Position',[ ],'edgecolor',get(gcf,'color'))