文档库 最新最全的文档下载
当前位置:文档库 › matlab实验3 4 5

matlab实验3 4 5

matlab实验3 4 5
matlab实验3 4 5

实验四MATLAB 程序设计

一、实验目的

掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数。

二、实验内容

(1) M 文件的编辑。

(2) 程序流程控制结构。

(3) 子函数调用和参数传递。

(4) 局部变量和全局变量。

三、实验结果

练习:

(1) 请把exp2.m 函数文件用while 循环改写。

(2) 用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6

为止,试编写其M 脚本文件。

(1)解:

x=input('输入一个自然数:')

s=0

n=1

while n<=x

s=s+n

n=n+1

end

(2)解:

s=1;

k=1;

n=1;

while(k*(-1)^(n+1)>10^(-6))

k=k*(1-2*n)/(1+2*n);

s=s+k;

n=n+1;

end

pai=s*4

练习:(1) 编写求矩形面积函数rect,当没有输入参数时,显示提示信息;当只输入一个参数时,则以该参数作为正方形的边长计算其面积;当有两个参数时,则以这两个参

数为长和宽计算其面积。

(2) 编写一个字符串加密函数nch=my_code( ch , x),其中ch 是字符串参数,x 为整

数;加密方法是:把ch 的每一个字符的ASCII 码值加上x,得到的即为加密后的新

的字符串nch。由于可显示ASCII 码值是有范围的(32,126),因此当得到的ASCII码值大于126 时,需要减去93 。同理,再编写一个解码函数nch=my_dcode( ch , x)。

提示:char(32:126) 可获得ASCII 码值为32~126 的字符。7

(1)

解:

function s=rect(a,b)

switch(nargin)

case 0

error('请输入一个或两个数');

case 1

s=a*a;

case 2

s=a*b;

end

(2)

加密:

function nch=my_code(ch,x)

nch=ch+x;

if nch>126

nch=nch-93;

char(nch)

else

char(nch)

end

解码:

function nch=my_code(ch,x)

nch=ch-x;

if nch<32

nch=nch+93;

char(nch)

else

char(nch)

end

实验五MATLAB 数据可视化

一、实验目的

掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。

二、实验内容

(1) 二维图形绘制。

(2) 三维曲线和三维曲面绘制。

(3) 图像文件的读取和显示。

三、实验结果

练习:

写出图A2 的绘制方法。

提示:按照以下的步骤进行(1)产生曲线的数据(共有3 组数据);(2)选择合适的线形、标记、颜色(正弦曲线为红色,余弦曲线为紫色);(3)添加图例及文字说明信息;(4)添加坐

标轴说明与图标题。

解:

x=linspace(0,4*pi,100)

y1=sin(x)

y2=cos(x)

y3=0

plot(x,y1,'r:',x,y2,'m',x,y3,'-')

xlabel('时间')

ylabel('幅值')

legend('sinx','cosx')

gtext('\leftarrowsinx')

gtext('\leftarrowcosx')

axis([0 16 -1 1])

练习:利用子图函数,绘制以上的空间螺旋线的俯视图、左侧视图和前视图。

解:

z=0:0.1:6*pi

x=cos(z)

y=sin(z)

plot3(x,y,z)

>>view(0,90)%俯视图

>>view(0,0)%左侧视图

>>view(90,0)%前视图

练习:

考虑以下问题:设z = x2e?( x2 + y2 ) ,求定义域 x=[-2,2],y=[-2,2]内的 z 值(网格取 0.1)。

请把z 的值用网面图形象地表示出来,如图A3 所示。

解:

x=-2:0.1:2;

y=-2:0.1:2;

[X,Y]=meshgrid(x,y);

Z=X.^2.*exp(-(X.^2+Y.^2));

mesh(X,Y,Z)

实验六SIMULINK 仿真集成环境

一、实验目的

熟悉SIMULINK 的模型窗口、熟练掌握SIMULINK 模型的创建,熟练掌握常用模块

的操作及其连接。

二、实验内容

(1) SIMULINK 模型的创建和运行。

(2) 一阶系统仿真。

matlab实验四

实验目的 (1) 利用计算机完成控制系统的根轨迹作图。 (2) 了解控制系统根轨迹作图的一般规律。 (3) 利用根轨迹进行系统分析。 实验步骤 (1)运行matlab 。 (2)练习根轨迹的相关函数。 rlocus(sys) rlocus(sys,k) r=rlocus(sys) [r,k]=rlocus(sys) (3)实验内容 1)给定如下系统的开环传递函数,作出它们的根轨迹,并完成给定要求。 ()()()21++= s s s k s G 要求:准确记录根轨迹的起点、终点和根轨迹的条数。 确定根轨迹的分离点与相应的根轨迹增益。 确定临界稳定时根轨迹增益k 。 (1) num=[1]; den=conv([1 0],conv([1 1],[1 2])); sys=tf(num,den); rlocus(sys)

-1、0终点为无穷远∞。 (2) num=[1]; den=conv([1 0],conv([1 1],[1 2])); sys=tf(num,den); rlocus(sys); [kd,pd]=rlocfind(sys) Select a point in the graphics window selected_point = -0.4207 - 0.0000i kd = 0.3849 pd = -2.1547 -0.4247

分离点为-0.4207,增益为0.3849 (3) num=[1]; den=conv([1 0],conv([1 1],[1 2])); sys=tf(num,den); rlocus(sys); [k,p]=rlocfind(sys) Select a point in the graphics window selected_point = 0.0153 - 1.4136i k = 6.0566 p = -3.0051 0.0026 + 1.4197i ()()()()164112 ++-+=s s s s s k s G 要求:确定根轨迹与虚轴交点并确定系统稳定的根轨迹增益k 。 num=[1 1]; den=conv([1 0],conv([1 -1],[1 4 16])); sys=tf(num,den); rlocus(sys);

Matlab实验三答案

实验三 MATLAB语言的程序设计 一、实验目的: 1、熟悉MATLAB程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: 1、程序流程控制语句 for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、 以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while 后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2

else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end 说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。 2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令 break、return、pause 2、函数文件的结构和编写方法 函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。 M函数文件的结构 (1)函数定义行(function) (2)H1行(函数帮助文本的第一行) (3)函数帮助文本 (4)函数体 (5)注释 函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB 自身的函数命令相同。 三、实验内容: 2、用for循环语句实现求1~100的和 编程: sum=0; for i=1:100 sum=sum+i; end sum

MATLAB第一次实验

一、【实验目的】 了解matlab基础知识和操作 一、【实验任务】 P16 4. 编写函数文件,计算∑k!,并求出当n=20时表达式的值。 P27 2. 矩阵A=[1,2,3;4,5,6;7,8,9],B=[4,6,8;5,5,6;3,2,2],计算A*B,A.*B,并比较两者的区 别。 P27 3. 已知矩阵A=[5,2;9,1],B=[1,2;9,2],做简单的关系运算A>B,A= =B,AB)。 P34 1. 用π/4=1-/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止。 二、【实验程序】 P16 第4题 function s=s(n) y=1; sum=0; for i=1:n; y=y*i; sum=sum+y; end sum >> s(20) sum = 2.5613e+18 P27 第2题 A=[1 2 3;4 5 6;7 8 9]; B=[4 6 8;5 5 6;3 2 2]; >>A*B ans = 23 22 26 59 61 74 95 100 122 >> A.*B

ans = 4 12 24 2 25 36 21 16 18 P27 第3题 >> A=[5 2;9 1]; >> B=[1 2;9 2]; >> A>B ans = 1 0 0 0 >> A==B ans = 0 1 1 0 >> A> (A==B)&(A> (A==B)&(A>B) ans = 0 0 0 0

实验四 MATLAB程序设计

实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 设计提示 1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……) 指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。Matlab 自动给这些曲线以不同颜色。标注可用text 函数。 2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3,注意参考帮助中的示例。 三、实验内容 1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、 杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。 2、绘制函数曲线,要求写出程序代码。 (1) 在区间[0:2π]均匀的取50个点,构成向量t (2) 在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲 线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。 (3) 分别在靠近相应的曲线处标注其函数表达式。 3.将图形窗口分成两个绘图区域,分别绘制出函数: ???+-=+=1 352221x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12] 区间上,2y 在[-2,1.5]区间上。 4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的

取值范围设为[-3,3]。 10102 2y x z +-= 思考题: 1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点 为圆心,画一个如图所示的红色空心圆。(图例半径r=5);左图参考 polar 函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。其中,t 的区间为0~2*pi ,步长为0.1。 2.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5, 每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。

MATLAB实验报告(5-9)

第五次MATLAB实验报告 一.实验报告 1.学会运用MATLAB分析连续系统的频率特性; 2.学会运用MATLAB进行连续系统的频域分析; 二.实验任务 熟练运用MATLAB进行连续时间LTI系统的频率特性及频率分析,三.实验内容 (1).MATLAB信号处理工具箱提供的freqs函数可直接计算系统的频率响应 的数值解,其语句格式为 H=freqs(b,a,w)。 b,a分别表示H(w)的分子和分母多项式的系统向量; w为系统频率响应的频率范围,其一般形式为w1:p:w2, w1为频率起始值,w2位频率终止值,p为频率取样间隔, H返回的样值可能包括实部和虚部的复数。 因此,如果想要得到系统的幅频特性或相频特性,还需利用abs和angle 函数来分别求得。 (2).连续LTI系统的频域分析法也称傅里叶变换分析法。 四.实验小结 该实验让我们学会了在MATLAB软件上用傅里叶分析法对连续系统进行频率特性和频域的分析,并输出相应的图形。 五.实验作业

(1).实例8-1 实例8-4

六.

第六次MATLAB实验报告 一、实验目的 1.学会运用MATLAB求拉普拉斯变换。 2.学会运用MATLAB求拉普拉斯反变换。 3.学会运用MATLAB求解系统函数的零极点。 4.学会运用MATLAB分析系统函数的零极点分布与其时域特性的关系。 5.学会运用MATLAB分析系统函数的极点分布与系统稳定性的分布。 6.学会运用MATLAB绘制波特图。 二、实验任务 熟练运用MATLAB进行一系列的编程输出结果和输出图形。 三、实验内容 1.拉普拉斯变换: 利用MATLAB的符号数学工具箱中laplace函数来实现拉布拉斯变换,语句格式:L=laplace(f); 2.拉普拉斯反变换: (1).语句格式:f=ilaplace(L); (2).用MATLAB函数residue可以得到复杂有理分式F(s)的部分分式展 开式,语句格式:[r,p,k]=residue(B,A); 例题: format rat;

matlab实验报告

MATLAB 数学实验报告 指导老师: 班级: 小组成员: 时间:201_/_/_

Matlab 第二次实验报告 小组成员: 1 题目:实验四,MATLAB 选择结构与应用实验 目的:掌握if 选择结构与程序流程控制,重点掌握break,return , pause语句的应用。 问题:问题1:验证“哥德巴赫猜想” ,即:任何一个正偶数(n>=6)均可表示为两个质数的和。要求编制一个函数程序,输入一个正偶数,返回两个质数的和。 问题分析:由用户输入一个大于6 的偶数,由input 语句实现。由if 判断语句判断是否输入的数据符合条件。再引用质数判断函数来找出两个质数,再向屏幕输出两个质数即可。 编程:function [z1,z2]=gede(n); n=input('please input n')

if n<6 disp('data error'); return end if mod(n,2)==0 for i=2:n/2 k=0; for j=2:sqrt(i) if mod(i,j)==0 k=k+1; end end for j=2:sqrt(n-i) if mod(n-i,j)==0 k=k+1; end end if k==0 fprintf('two numbers are') fprintf('%.0f,%.0f',i,n- i) break end

end end 结果分析 如上图,用户输入了大于6的偶数返回两个质数5和31,通过 不断试验,即可验证哥德巴赫猜想。 纪录:if判断语句与for循环语句联合嵌套使用可使程序结构更加明晰,更快的解决问题。 2题目:实验四,MATLAB选择结构与应用实验 目的:用matlab联系生活实际,解决一些生活中常见的实际问 题。

matlab实验五答案1

实验五 1、编写程序,该程序在同一窗口中绘制函数在 []0,2π之间的正弦曲线和余弦曲线,步长 为200/π,线宽为2个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记并标注sin(x)=cos(x);通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。%x=linspace(0,2*pi,1000);x=[0:pi/200:2*pi]sinx =sin(x);cosx =cos(x); k=find(abs(sinx-cosx)<1e-2);x1=x(k); plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x1,sin(x1),'r*')xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)'); title('正弦-余弦曲线'); text(x1+0.1,sin(x1),'sin(x)=cos(x)');legend('sin(x)','cos(x)'); 1 2 34 5 6 7 x:(0-2π) y :s i n (x )/c o s (x ) 正弦-余弦曲线 2、绘制图像:双曲抛物面:22 x y z =- ,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。 [X,Y]=meshgrid(-16:0.4:16,-4:0.1:4);Z =X.^2/16-Y.^2/4; subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth =0,elevation =180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth =

matlab第一次实验报告

Matlab第一次实验报告 2012029010010 尹康 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x,y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 程序代码: n=input('input the number of pionts:'); a=input('input a:'); b=input('input b:'); x=[]; y=[]; x(1)=input('input x1:'); y(1)=input('input y1:'); %输入点数、初始值以及系数for i=2:n x(i)=a*x(i-1)-b*(y(i-1)-x(i-1)^2); y(i)=a*x(i-1)+b*(y(i-1)-x(i-1)^2); %根据已输入的数据进行迭代end figure;plot(x,y,'linewidth',2) axis equal %横纵坐标等比例 text(x(1),y(1),'1st point') %标记初始点 运行结果:

心得体会及改进:在输入某些数据时,所绘曲线可能是一条折线(如:n=5,a=b=x1=1,y1=2)甚至只有一个点(如:n=5,a=b=x1=y1=1),此时可能出现曲线与坐标轴重合或无法看到点的情况,为了更清晰地展现曲线,可以使线宽适当加宽并标记初始点。 2.编程实现奥运5环图,允许用户输入环的直径。 程序代码: 函数circle: %在指定的圆心坐标处,用指定颜色、宽度的线条绘出指定半径、圆心角的弧 function f=circle(r,x,y,color,linw,alp1,alp2) alp=linspace(alp1,alp2); X=r*cos(alp)+x; Y=r*sin(alp)+y; plot(X,Y,color,'linewidth',linw) end 主程序代码: r=input('input r:');

MATLAB 实验四报告

实验四 线性控制系统的时域响应分析 一、 实验目的 1.熟悉MATLAB 有关命令的用法; 2.用MATLAB 系统命令对给定系统进行时域分析; 二、实验内容 求连续系统的单位阶跃响应有关命令的用法: 命令格式: [y,x,t]=step(num, den) [y,x,t]=step(num, den, t) [y,x,t]=step(A,B,C,D) [y,x,t]=step(A,B,C,D,iu) [y,x,t]=step(A,B,C,D,iu,t) 练习4-1. 给定系统的传递函数如下: 求该系统的阶跃响应曲线,记录超调量、上升时间、过渡过程时间。 结果: num=[25]; den=[1 4 25]; step(num,den) grid 练习4-2. 已知系统的开环传递函数为: 求出该系统在单位负反馈下的阶跃响应曲线,记录超调量、上升时间、过渡过程时间。 结果: num=[20]; s s s s s G 4036820 )(234+++=25 425)()(2++=S S S R S C

+ — — den=[1 8 36 40 0]; [numc,denc]=cloop(num,den,-1); step(numc,denc) 练习4-3 已知系统的传递函数为: ①求系统的阶跃响应; ②阶跃响应曲线线型用“*”号表示; ③阶跃响应图应加上横坐标名、纵坐标名和标题名,并加上网格线。 结果: G1=tf([6.3233 6.3233*2*1.4235 1.4235*1.4235*6.3233 ],[1 0]); G2=tf([1],[1 1 10 0]); sys1=series(G1,G2); sys=feedback(sys1,-1); [y,t,x]=step(sys) plot(t,y,'*'); xlabel('time'); ylabel('y'); title('响应'); grid 练习4-4 求T1、T2、T3系统的阶跃响应; ①将 T1、T2、T3系统的阶跃响应图画在同一窗口内; ②T1、T2、T3系统的阶跃响应曲线分别用不同的线形和颜色表示; ③将‘T1、T2、T3’分别标注在对应的曲线上。 s s 2)4235.1(3233.6+ ) 5)(1(1++s s s

实验5 Matlab程序设计1

实验5 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。请输入x 的值 x=input('请输入x 的值'); if x<0&x~=-3 y=x*x+x-6; elseif 0<=x&x<5&x~=2&x~=3 y=x*x-5*x+6; else y=x*x-x-1; end y

second 请输入x的值-5 y = 14 second 请输入x的值-3 y = 11 >> second 请输入x的值0 y = 6 >> second 请输入x的值1

y = 2 >> second 请输入x的值2 y = 1 >> second 请输入x的值2.5 y = -0.2500 >> second 请输入x的值3

5 >> second 请输入x的值5 y = 19 >> 3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89 分为B,70~79分为C,60~69分为D,60分以下为E。 要求: (1)分别用if语句和swich语句实现。 (2)grade=input('input grade:'); (3)if grade<=100&grade>=90 (4)level='A'; (5)elseif grade<=89&grade>80 (6)level='B'; (7)elseif 70<=grade&grade<=79

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开; 矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。 2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p 表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1:

实验四 MATLAB图形系统

实验四 MATLAB图形系统 实验性质:验证性实验级别:必做 开课单位:信息与通信工程学院通信工程系学时:2学时 一、实验目的: 1、掌握利用MATLAB提供的图形函数来建立图形 2、理解MATLAB图形系统的概貌 二、实验器材: 安装matlab软件的计算机 三、实验原理 3.1 二维曲线绘图的基本操作 plot的基本调用格式的运用 3.2 三维绘图的基本操作 三维线图指令plot3 3.3 高级图形 一个图形由安排在一个层次结构上的五个图形对象组成。首先有一个窗口,这是一个图形对象。然后由两个轴对象来定义相应的坐标轴。这些都可以用s u b p l o t命令来完成。最后,用p l o t命令来创建两个线条对象。 对于每一个对象都可以修改它的一些属性。例如,可以改变图形窗口的位置和图形对象的背景色。对于一个轴对象可以改变它在图形区域内的刻度大小和位置。线条对象可以变得更细,改变成另一种颜色,另一种线型等等。 四、实验内容: 1、画出对数和指数函数,并分别加上标题,轴标记和曲线说明.这里要求采用多种方法 来标注曲线. 2、将图形窗口分成两格,分别绘制正割和余割函数曲线,并加上适当的标注. 3、将图形分成两个窗格分别绘制出函数在[-3,3]区间上的曲线,并利用axis调整轴 刻度,使它们具有相同的缩放尺寸 4、有一位研究生,在一年中平均每月的费用为生活费190元,资料费33元,电话费45

元,购买衣服42元,其它费用45元.请以一饼图表示出他每月的消费比例,并分离出 表示资料费用的切片.请给出每一块加以标注. 五、实验步骤: 1、画出对数和指数函数,并分别加上标题,轴标记和曲线说明; 2、将图形窗口分成两格,分别绘制正割和余割函数曲线,并加上适当的标注. 3、将图形分成两个窗格分别绘制出函数在[-3,3]区间上的曲线,并利用axis调整轴 刻度,使它们具有相同的缩放尺寸; 4、根据内容4编写m文件,并以一饼图表示出他每月的消费比例。 六、实验结果 1、画出对数和指数函数,并分别加上标题,轴标记和曲线说明.这里要求采用多种方法来标注曲线 代码:

MATLAB实验五 函数文件

MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:200713503117

实验五 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end 运行结果: >> num(5i) e = 0.2837 - 0.9589i ln = 1.6094 + 1.5708i s = 0 +74.2032i c = 74.2099 ans = 0.2837 - 0.9589i 2.一物理系统可用下列方程组来表示: ??? ? ??? ???????= ?????? ??? ??? ???????????? ??----g g m m N N a a m m m m 2121212 111001cos 0 0sin 00cos 0 sin 0sin cos θ θθ θθθ 从键盘输入 m 1 、 m 2 和θ的值,求 N a a 121、、和 N 2 的值。其中g 取9.8,输入θ时以角度为单位。 程序设计: 函数文件in.m: function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8; A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C; a1=B(1); a2=B(2); N1=B(3); N2=B(4); end 调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 = 6.5333 a2 = 1.8860 N1 = 7.5440 N2 = 26.1333 4.设 f(x)= 01 .01 1 .01 ) 3() 2(4 2 +++--x x , 编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: function A=fx(x) A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end 调用fx.m 的命令文件: >> A=fx([1 2;2 3;4 3]) 运行结果: A = 0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y= ) 20()30() 40(f f f + (1)当f(n)=n+10ln(n 2+5)时,求y 的值。

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

matlab第五章思考与实验

第五章思考与实验 一思考题 1在matlab数据处理中,数据序列是如何表示的? 答:可以让矩阵的每列或每行代表不同的被测变量,相应的行或列的元素代表被测向量的观测值,这样就很容易通过对矩阵元素的访问进行数据的处理和分析。 2函数sum与cumsum有何区别? 答:sum(A):如果A是一个向量,则返回向量各元素的和。如果A是一个矩阵,则返回一个行向量,其第i个元素是A的第i列的元素和。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i 个元素是A的第i行的个元素之和。 cumsum(A):如果A是一个向量,则返回向量的累加和。如果A是一个矩阵,则返回一个矩阵,其第i列是A的第i列的累加和向量。 cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim为2时,返回一个矩阵,其第行是的第i行的累加和向量。 3利用randn函数生成符合正态分布的10*5随机矩阵A,写出完成下列操作的命令。 (1)A各列元素的均值和标准方差。 答:>> a=randn(10,5) a = 1.3005 -1.3165 -0.5492 0.0601 -1.5809 0.2691 -0.6103 1.0014 0.0510 -1.0978 -0.1551 0.4468 0.7482 0.7101 0.2103 0.0342 -2.4119 0.7242 -0.0953 -0.4456 0.9913 1.6895 0.7019 -1.2037 -0.2694 -1.3618 -0.9683 0.8053 0.2633 -1.1721 0.9792 1.4889 -0.1651 -0.1608 0.1277 -0.8863 -1.0166 -1.0022 -0.1653 1.0411 -0.3562 -2.1758 0.5817 1.1027 1.2827 -0.1428 -0.5737 2.1113 0.3762 0.3490 >> mean(a) ans = 0.0672 -0.5448 0.4957 0.0938 -0.1555 >> std(a) ans =

实验4 Matlab程序设计1

实验4 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。 3. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E ,其中90~100分为A ,80~89 分为B ,70~79分为C ,60~69分为D ,60分以下为E 。 要求: (1) 分别用if 语句和swich 语句实现。 (2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 4. 硅谷公司员工的工资计算方法如下: (1) 工作时数超过120小时者,超过部分加发15%; (2) 工作时数低于60小时者,扣发700元; (3) 其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。 5.设计程序,完成两位数的加、减、乘、除四则运算。即:输入两个两位随机整数,再输 入一个运算符号,做相应的运算,并显示相应的结果。 6.建立5×6矩阵,要求输出矩阵的第n行元素。当n值超过矩阵的行数时,自动转为输 出矩阵的最后一行元素,并给出出错信息。 7.产生20个两位随机整数,输出其中小于平均数的偶数。 实验代码及实验结果 1. >> a=input('请输入一个四位整数:'); 请输入一个四位整数:9988 >> a1=fix(a/1000); >> a2=rem(fix(a/100),10); >> a3=rem(fix(a/10),10); >> a4=rem(a,10); >> a1=rem(a1+7,10); >> a2=rem(a2+7,10); >> a3=rem(a3+7,10); >> a4=rem(a4+7,10); >> b=a1;a1=a3;a3=b; >> b=a2;a2=a4;a4=b; >> c=a1*1000+a2*100+a3*10+a4; >> disp(c)

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构 一、实验目的: 1、 掌握建立和执行M 文件的方法。 2、 掌握利用if 语句实现选择结构的方法。 3、 掌握利用switch 语句实现多分支选择结构的方法。 4、 掌握try 语句的使用。 5、 掌握利用for 语句实现循环结构的方法。 6、 掌握利用while 语句实现循环结构的方法。 7、 熟悉利用向量运算来代替循环的操作方法。 二、实验内容: 1、 列分段函数的值。 ?? ???--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y 要求: (1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 提示:x 的值从键盘输入,可以是向量。 %homework_5_1_1.m x=input('请输入x 的值:x='); if (x<0 & x~=-3) y= x.*x + x - 6 elseif (x>=0 & x<10 & x~=2 & x~=3) y=x.*x-5.*x+6 else y=x.*x-x-6 end >> homework_5_1 请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] y = -5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000 (2) 用逻辑表达式实现上述函数。 %homework_5_1_2.m x=input('请输入x 的值:x=') y=(x<0 & x~=-3).*(x.*x+x-6)... +(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)... +(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6) >> homework_5_1_2 请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] x = -0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = -6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.0000

实验四matlab

Mstg函数 function st=mstg N=800 Fs=10000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10; fm1=fc1/10; fc2=Fs/20; fm2=fc2/10; fc3=Fs/40; fm3=fc3/10; xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); st=xt1+xt2+xt3; fxt=fft(st,N); subplot(3,1,1) plot(t,st);grid;xlabel('t/s');ylabel('s(t)'); axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形') subplot(3,1,2) stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]); xlabel('f/Hz');ylabel('幅度')

调幅信号y1(n) fp1=300;fs1=400;Fs=10000;T=1/Fs; wp1=2*fp1/Fs;ws1=2*fs1/Fs; rp=0.1;rs=60; [N,wn1]=ellipord(wp1,ws1,rp,rs); [b1,a1]=ellip(N,rp,rs,wn1); st1=mstg y1=filter(b1,a1,st1); [H,W]=freqz(b1,a1); m=abs(H); figure(2);subplot(3,1,1) plot(W/pi,20*log10(m/max(m)));grid;xlabel('频率(Hz)');ylabel('幅度(dB)');title('(c) H1(z)的幅频特性') subplot(3,1,2) N=800;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; plot(t,y1);grid;xlabel('t/s');ylabel('y1'); axis([0,Tp/8,min(y1),max(y1)]);title('(d) y1的波形') Y1=fft(y1) k=0:N-1; subplot(3,1,3) plot(f,abs(Y1)); stem(f,abs(Y1)/max(abs(Y1)),'.');grid;title('(e) y1的频谱') axis([0,Fs/5,0,1.2]); xlabel('f/Hz');ylabel('幅度')

相关文档