实验5 Matlab程序设计1
实验5
实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
MATLAB实验及程序
实验一a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)B(24)=9实验二1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将小于0元素个数存变量c中并将这些小于零元素存变量d中。
(实验报告要求:写出命令)a=randn(5)b=find(a<0);c=length(find(a<0))d=a(b)2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)A B C DE F G Ha b c da=['A B C D''E F G H''a b c d']3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。
(实验报告要求:写出正确计算方法的命令)A=randn(3,4)B=numel(A)4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)f=B{1,2}(7:end)5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)方法1: i=B{2,1}(:)方法2: j=reshape(B{2,1},3,1)6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算=['姓名''张三''李四']student.shuxue=[8778]student.yuwen=[7581 ]student.yingyu=[5560]实验三实验四:二维绘图(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。
要求如下:◆正弦图象用蓝色实线,时标用方格;◆余弦图象用黄色虚线,时标选向下三角形;◆为整个图像加中文标题;◆为x和y轴加轴标题;◆改x轴的单位为pi/2的倍数;◆增加图例;◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。
matlab实验五循环结构程序设计实验报告
实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。
二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。
三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。
在Matlab中,循环结构主要有while 循环和for循环两种形式。
while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。
四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。
程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。
2. 编写一个使用for循环的程序,实现1~10的阶乘。
程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。
五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。
在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。
我也进一步提高了自己的编程能力和问题解决能力。
本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。
六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。
循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。
MATLAB实验
MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。
5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。
实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。
实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。
实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
MATLAB程序设计实验指导书
MATLAB程序设计实验指导书MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能满足所有的计算需求。
在美国及其他发达国家的理工科院校里,MATLAB已经作为一门必修的课程;在科研院所、大型公司或企业的工程计算部门,MATLAB也是最普遍的计算工具之一。
有鉴于此,我院开设了《MATLAB程序设计》这门课程,它需要一定的理论基础,同时又具有很强的实践性。
如何加强理论课程的学习、加深学生对本课程中的基本理论知识及基本方法的理解,如何培养学生实践动手能力是教学的当务之急。
而MATLAB程序设计实验课程就是一种重要的教学手段和途径。
实验将MATLAB程序设计的基本方法灵活地运用在数学、电路等课程中,重点突出,内容丰富。
同时,注重理论分析与实际动手相结合,以理论指导实践,以实践验证基本原理,旨在提高学生分析问题、解决问题的能力及动手能力,使学生进一步巩固基本理论知识,建立比较全面的MATLAB程序设计的概念。
实验注意事项1、实验系统接通电源前请确保电源插座接地良好。
2、完成实验后请确保关闭电脑电源及插座电源。
实验一 矩阵及其运算一、实验目的1、熟悉MATLAB 工作环境2、掌握矩阵和数组的创建、寻访和运算 二、实验内容验证欧姆定律:iur ,其中i u r , ,分别是电阻(欧姆)、电压(伏特)、电流(安培)。
已知u=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41],i=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345]。
三、实验器材PC 机 (装有 MA TLAB 软件 ) 1台 四、实验原理 4.1 Desktop 简介MATLAB R2006a 版的Desktop 操作桌面,是一个高度集成的MATLAB 工作界面。
《MATLAB程序设计》实验指导书
三、
实验仪器和设备
1、 计算机一台。 2、 MATLAB7.0 以上集成环境。
四、
预习要求
2
《MATLAB 程序设计》实验指导书
1、 复习 MATLAB 的启动与Байду номын сангаас出,熟悉 MATLAB 运行环境。 2、 复习 MATLAB 中矩阵的生成以及矩阵运算的基本原理。
五、
实验内容及步骤
实验内容:
1、 求下列表达式的值 1) z1
5
《MATLAB 程序设计》实验指导书
2) 函数调用 函数文件编制好后,就可调用函数进行计算了。函数调用的一般格式为 [输出实参表]=函数名(输入实参表) 注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个 数一致,否则会出错。函数调用时,实参先传递给形参,然后再执行函数功能。 5、 选择结构 1) if 语句 a) 单分支 if 语句 if 条件 语句块 end b) 双分支 if 语句 if 条件 语句块 1 else 语句块 2 end c) 多分支 if 语句 if 条件 1 语句块 1 elseif 条件 2 语句块 2 …… elseif 条件 n 语句块 n else 语句块 n+1 end 2) switch 语句 switch 表达式 case 结果表 1 语句块 1 case 结果表 2 语句块 2 ……
二、
实验原理
1、 M 文件 用 MATLAB 语言编写的程序,称为 M 文件,它们的扩展名均为.m。M 文件根据 调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file) 。 2、 建立新的 M 文件 启动 MATLAB 文本编辑器有 3 种方法: 1) 单击工具栏上的“New M-File”命令按钮。 2) 从 MATLAB 主窗口的“File”菜单中选择“New”菜单项,再选择“M-file”命令。 3) 在 MATLAB 命令窗口输入命令“edit”。 3、 打开已有的 M 文件 1) 在当前目录窗口选中要打开的 M 文件,双击鼠标左键。 2) 单击 MATLAB 主窗口工具栏上的“Open File”命令按钮,再从弹出的对话框中 选择所需打开的 M 文件。 3) 从 MATLAB 主窗口的“File”菜单中选择“Open”命令,在“Open”对话框中选中 所需打开的文件。 4) 在 MATLAB 命令窗口输入命令“edit 文件名” 。 4、 函数文件 1) 函数文件的基本结构 函数文件由 function 语句引导,其基本结构为: function 输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意:函数名的命名规则与变量名相同。当输出形参多于一个时,应用方括号 括起来。
MATLAB程序设计实验1
测试数据:
b3= linspace(0,10,5)
4)定数对数采样的方法(logspace(a,b,n)):
n为数组的总个数,a为第一个元素,b为数组的最后一个元素。经过常用对数采样生成一维数组。
测试数据:
b4=logspace(-1,1,4)
[px,py] = gradient(z,.2,.2);
contour(v,v,z), hold on, quiver(v,v,px,py), hold off
4)fminbnd、fminsearch、fminunc极值
x1 = 0;
x2 =2*pi;
[x,y] = fminbnd(@func,x1,x2)
a5=tril(a)
a6=triu(a,1)
5.字符串数组的创建和操作实验
1)字符串的创建
a.直接输入的方法创建字符串数组
在直接创建数组的时候,可以直接用单引号将字符串括起来作为一个字符串数组,字符窗中如果有单引号,可以利用转义的方法,在单引号前面在加一个单引号。一个字符串的数组还可以由其他的字符串数组拼接而成。
e./f
11)克罗内克张量积
kron(a,b)表示利用a的每一个元素和b矩阵相乘,乘后分别作为结果矩阵的一块.
a=[1,2,3;4,5,6];
b=[1,0,0;0,1,0;0,0,1];
kron(a,b)
kron(b,a)
12)逻辑与&
当数组中的元素数字不为0,均表示逻辑1。
a=[1,2,3];
b=[3,4,5];
a.cat函数
cat函数用于连接数组,标准形式为c=cat(dim,A1,A2,A3,…)其中,dim表示传见数组的维数,A1,A2,A3表示各个维度上的数组。
《MATLAB仿真技术》实验指导书2016附问题详解
实验项目及学时安排实验一 MATLAB环境的熟悉与基本运算 2学时实验二 MATLAB数值计算实验 2学时实验三 MATLAB数组应用实验 2学时实验四 MATLAB符号计算实验 2学时实验五 MATLAB的图形绘制实验 2学时实验六 MATLAB的程序设计实验 2学时实验七 MATLAB工具箱Simulink的应用实验 2学时实验八 MATLAB图形用户接口GUI的应用实验 2学时实验一 MATLAB环境的熟悉与基本运算一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、 exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
实验五 matlab基础知识(简单)
本次实验注意:《实验五MALTAB基础知识(简单)》《实验五基于Matlab的信号频谱分析(复杂)》选作一个即可实验五MALTAB基础知识(一)实验目的 (2)(二)实验设备 (2)(三)实验要求 (2)(四)实验内容 (2)1.1 MATLAB基础知识 (2)1.1.1 MATLAB程序设计语言简介 (2)1.1.2 MA TLAB界面及帮助 (2)1.2 MA TLAB基本运算 (4)1.2.1 MA TLAB内部特殊变量和常数 (4)1.2.2 变量类型 (4)1.2.3 内存变量管理 (5)1.2.4 MA TLAB常用数学函数 (5)1.2.5 MA TLAB矩阵生成 (5)1.2.6 MA TLAB矩阵运算 (8)1.2.7 MA TLAB中的矩阵分析 (10)1.3 MA TLAB程序设计 (10)1.3.1 M文件 (10)1.3.2 程序控制结构 (12)实验五MALTAB基础知识(一)实验目的●了解MA TLAB 程序设计语言的基本特点,熟悉MA TLAB软件运行环境●掌握创建、保存、打开m文件及函数的方法●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力(二)实验设备计算机,Matlab软件(三)实验要求本实验属于验证实验,请根据(四)实验内容的步骤,运行相应的指令或例子,并将仿真结果截图至文档(请自己新建一个word文档,注意,并不一定所有指令或例子的实验结果都要截图,截图数目大于等于5个即可,自己选择性截图,答案不唯一,自由发挥)请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验五_学号_姓名”,并通过FTP上传至指定文件夹。
(四)实验内容1.1 MATLAB基础知识1.1.1 MATLAB程序设计语言简介MA TLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
MATLAB实验报告一二三
2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131 姓名:付云雷学号:132872一、实验目的:1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。
2、掌握MATLAB常用命令的使用。
3、掌握MATLAB帮助系统的使用。
4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。
二、实验内容:1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。
图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。
例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。
lookfor:用来寻找未知的命令。
例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。
找到所需的命令後,即可用help进一步找出其用法。
(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。
具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据3、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。
实验4答案 Matlab程序设计1
实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。
实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),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)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。
,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 = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和swich语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
MATLAB_实验5
实验5 MATLAB在信号与系统的应用【实验目的】1、了解并熟悉MATLAB实现常用连续时间信号的产生方法;连续系统的时域和频域分析方法。
2、掌握MATLAB程序的编程方法。
3、了解MATLAB信号处理工具箱函数的调用方法。
【实验内容】1、对书上例题的总结例1 绘制了单位冲激函数、单位阶跃函数与复指数函数的图形,用到的关键语句单位冲激函数:x1=zeros(1,length(t)); %对所有信号初始化,t为时间x1(n1)=1/dt; %给出t1时刻脉冲信号,dt为时间间隔单位阶跃函数:x2 = [zeros(1,n1),ones(1,length(t)-n1)];%产生阶跃信号,n1为t1对应的样本序号例2 求解了LTI系统的零输入响应,用到了经典法求解,关键语句如下:p=roots(a); %求系统的极点V=rot90(vander(p));c= V\Y0'; % 用范德蒙特矩阵求对应于各极点的系数for k=1:n y= y+c(k)*exp(p(k)*t);end例3 求解n阶LTI系统的冲激响应,用到了residue函数求解极点和留数,还用到了for语句叠加各根分量。
例4 主要是卷积的计算。
用到的函数有conv函数计算卷积,input函数等待用户输入数值,fliplr(h)函数将h左右翻转。
例5 求LTI系统的零状态响应,和求解零输入同样用到留数residue函数来求解冲激响应函数,并且绘制冲激响应函数的图形,然后将其与输入信号的卷积求出,即输出函数,最后绘制输出函数的图形。
例7 将周期方波分解为多次正弦波之和,用程序演示谐波合成情况。
用到的新函数是line([0,pi+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注halft=ceil(length(t)/2);mesh(t(1:halft),[1:10],y(:,1:halft)) %绘制三维图形例10 比较调幅信号通过带通滤波器后与原波形的区别。
MATLAB实验5(学号姓名)
实验五MATLAB函数及其调用
一、实验目的
(1)熟练掌握M文件的编写。
(2)掌握MATLAB程序的调试方法。
(3)掌握MATLAB函数文件的编写。
二、实验内容
(1)编写函数文件。
(2)对自己编写的程序进行调试。
三、程序设计
实验1:实验题6,教材51页。
实验2:编写函数rootresult.m求解一元二次方程ax2+bx+c=0的根。
输入参数a、b、c,调用用户编写的求根的函数,得到方程的根。
实验3:写一个MATLAB 函数piFun01.m 来计算下列级数:f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中n为函数的输入,代表上述级数的项数,f(n) 则是函数的输出。
(选做,附加分)
四、实验结果
实验1:
程序代码:
运行结果:
实验2:
程序代码:
运行结果:
实验3:
程序代码:
运行结果:。
MATLAB实验指导书
实验一:MATLAB的基本操作一、实验目的:1.熟悉MATLAB操作环境2.熟悉MATLAB的帮助3.熟悉MATLAB矩阵的操作4.熟悉MATLAB基本运算二、实验内容:1.自行设计试题,说明三角函数是按弧度还是按角度计算。
2.找出取整的函数,并自行设计试题,说明它们的区别。
3.自行设计试题,说明如何给矩阵按列符值。
4.自行设计试题,建一个5X5矩阵,然后将第一行乘1,第二行乘2,第三行乘3,第四行乘4,第五行乘5。
5.设计编写程序(命令),解方程3x5-7x4+5x2+2x-18=0。
6.自行设计试题,说明eval()函数的功能。
三、实验原理:ceil(x)= -4 -2 0 2 5 7fix(x) = -4 -2 0 1 4 6floor(x) = -5 -3 -1 1 4 6round(x) = -5 -2 0 1 5 72、系统的在线帮助help 命令:(1).当不知系统有何帮助内容时,可直接输入help以寻求帮助:>> help(回车)(2).当想了解某一主题的内容时,如输入:>> help syntax(了解Matlab的语法规定)(3).当想了解某一具体的函数或命令的帮助信息时,如输入:>> help sqrt (了解函数sqrt的相关信息)lookfor命令现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:>> lookfor line (查找与直线、线性问题有关的函数)3、常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:数值型向量(矩阵)的输入(1).任何矩阵(向量),可以直接按行方式...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。
所有元素处于一方括号([ ])内;例1-1:>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]>> X_Data = [2.32 3.43;4.37 5.98](2).系统中提供了多个命令用于输入特殊的矩阵:上面函数的具体用法,可以用帮助命令help得到。
中国石油大学matlab实验指导书
中国⽯油⼤学matlab实验指导书实验⼀ MATLAB 的基本使⽤⽅法⼀、实验⽬的1. 熟悉MATLAB 的主界⾯;2. 学会利⽤MATLAB 的联机帮助系统和命令窗⼝帮助系统;3. 学会利⽤MATLAB 进⾏基本的数学计算。
4. 掌握矩阵的构建与运算⽅法及相关函数;5. 掌握多项式的运算⽅法。
⼆、实验内容1. 设2u =,3v =,计算以下习题。
(1)vuvlg 450.3017 (2)()22u e v v u+-15.4189(3)uv0 + 0.4410i (4))70cos(3π0.35822. 已知a=1+2i ,b=5-6i ,请计算a+b 、a-b 、a ×b 、a ÷b 的值各是多少,并计算出各结果的幅⾓⼤⼩。
6.0000 - 4.0000i -4.0000 + 8.0000i 17.0000 + 4.0000i -0.1148 + 0.2623i3. 设A=1.2,B=-4.6,C=8.0,D=3.5,E=-4.0,计算)22arctan(DBC EA T ππ+= 1.1371 3. 设---=2212a ,--=4032b ,?=21c ,)2(eye d =,求解下列问题:(1)3×a 6 -3-6 -6 (2)a +b 4 -4-2 -6 (3)a *d 2 -1-2 -2 (4)a .*d 2 0 0 -2 (5)a \ b 0.6667 -0.3333-0.6667 2.3333 (6)a .\ b 1 3 0 2 (7)a .^ b 4.0000 -1.00001.0000 0.0625 (8)矩阵a 的逆阵 0.3333 -0.1667 -0.3333 -0.33334. 设三阶矩阵A ,B ,满⾜BA A BA A +=-61,其中=71000410031A 请求出矩阵B ,并代⼊关系式进⾏验证。
3 0 0 0 2 0 0 0 1 5. 已知矩阵=44434241343332312423222114131211A 计算:(1)A(:,1) (2)A(2,:) (3)A(:,2:3) (4)A(:,1:2:3)(5)[eye(size(A)),A';zeros(size(A)),A^2]1 0 0 0 11 21 31 410 1 0 0 12 22 32 420 0 1 0 13 23 33 430 0 0 1 14 24 34 440 0 0 0 1350 1400 1450 15000 0 0 0 2390 2480 2570 26600 0 0 0 3430 3560 3690 38200 0 0 0 4470 4640 4810 4980 6. 求解下列⽅程(1)0189234=+++X X X-7.9978 -1.11650.0571 + 0.3297i 0.0571 - 0.3297i(2)=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x3.0000 0 -1.0000 1.00007. 设矩阵a 、b 、c 和d 的定义如下:]2[=a ;--=4112b ;?-=02112c ;--=9011d ,试判断下列表达式的值:(1))(~b a > 1 0 0 0 (2)c b c a >>& 0 1 0 0 (3)d c <= 0 1 0 0实验⼆ MATLAB 程序设计⼀、实验⽬的1. 掌握MATLAB 编程语法;2. 掌握MATLAB 控制流程语句。
控制系统计算机仿真(matlab)实验五实验报告
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
MATLAB程序设计与应用
实验一 MATLAB 运算基础 第二题:已知A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡7653877344-3412 B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡72-33021-31求下列问题:1) A+6*B 和A-B+I2) A*B 和A.*B3) A^3 A.^34) A/B B\A5) [A,B] [A(1,3),:B.^2]解:>> A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; I=[1 0 0;0 1 0;0 0 1];(1)>> A+6*Bans =18 52 -1046 7 10521 53 49>> A-B+Ians =12 31 -332 8 840 67 1(2)>> A*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49(3)>> A^3ans =37226 233824 48604 247370 149188 600766 78688 454142 118820>> A.^3ans =1728 39304 -64 39304 343 658503 27 274625 343(4)>> A/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B\Aans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000(5)>> [A,B]ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 40第三题:设有矩阵A 和BA=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡25242322212019181716151413121110987654321 B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡111340794-23096-1716031) 求他们的乘积C2) 将矩阵C 的右下角3*2子矩阵赋给D3) 查看matlab 工作空间的使用情况解:>> A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25]; B=[30 16;17 -6 9;0 23 -4;9 7 0;4 13 11];(1)>> C=A*BC =93 150 77258 335 237423 520 397588 705 557753 890 717(2)>> D=C(3:5,2:3)D =520 397705 557890 717第四题:完成下列操作:1)求【100,999】之间能被21的数的个数2)建立一个字符串向量,删除其中的大写字母解:(1)>> A=100:999;>> B=rem(A,21);>> C=length(find(B==0))C =43(2)>> A='lsdhKSDLKklsdkl';>> k=find(A>='A'&A<='Z');>> A(k)=[]A =Lsdhklsdkl实验二 MATLAB矩阵分析与处理第三题: 建立一个5 5矩阵,求它的行列式的值,迹,秩,和范数。
MATLAB课程设计
一、课程目的初步学会使用MATLAB软件,掌握MATLAB基本的函数的使用,熟练MATLAB编程,以便为今后数字信号的处理打下基础。
二、课程内容实验一 MATLAB语言基础实验目的:基本掌握 MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
实验内容:1、创建以下矩阵:A为3×4的全1 矩阵、B为3×3的0矩阵、C为3×3的单位阵、D为3×3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×4的矩阵而得、以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H。
源程序:A=ones(3,4)% A为3×4的全 1 矩阵B=zeros(3)% B为3×3的0矩阵C=eye(3)% C为3×3的单位阵D=magic(3)% D为3×3的魔方阵E=cat(1,C,D)% E由C和D纵向拼接而成F=E(2:5,:)% F抽取E的2~5行元素生G=reshape(F,3,4)% G由F经变形为3×4的矩阵而得H=repmat(G,2,2) %以G为子矩阵用复制函数(repmat)生成6×8的大矩阵H运行结果:A =1 1 1 11 1 1 11 1 1 1B =0 0 00 0 00 0 0C =1 0 00 1 00 0 1D =8 1 63 5 74 9 2E =1 0 00 1 0 0 0 1 8 1 6 3 5 7 4 9 2 F =0 1 0 0 0 1 8 1 6 3 5 7 G =0 3 1 1 0 1 5 6 8 0 0 7 H =0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 72、(1)用矩阵除法求下列方程组的解 x=[x 1;x 2;x 3];⎪⎩⎪⎨⎧-=---=++-=++73847523436321321321x x x x x x x x x (2) 求矩阵的秩;(3) 求矩阵的特征值与特征向量; (4) 矩阵的乘幂与开方; (5) 矩阵的指数与对数; (6) 矩阵的提取与翻转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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
level='C';
elseif 60<=grade&grade<=69
level='D';
else
level='E';
end
level
grade=input('input grade:'); switch fix(grade)
case num2cell(90:100)
level='A';
case num2cell(80:89)
level='B';
case num2cell(70:79)
level='C';
case num2cell(60:69)
level='D';
otherwise
level='E';
end
level
(8)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
4.硅谷公司员工的工资计算方法如下:
(1)工作时数超过120小时者,超过部分加发15%;
(2)工作时数低于60小时者,扣发700元;
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
num=input('input number:');
time=input('input work time:');
if time>120
sum=84*time+(time-120)*84*0.15;
elseif time<60
sum=84*time-700;
else
sum=84*time;
end
sum
5.设计程序,完成两位数的加、减、乘、除四则运算。
即:输入两个两位随机整数,再输
入一个运算符号,做相应的运算,并显示相应的结果。
a=input('input a number:');
b=input('input another number');
c=input('input a method:','s');
if c=='+'
result=a+b;
elseif c=='-'
result=a-b;
elseif c=='*'
result=a*b;
elseif c=='/'
result=a/b;
else
result='error input';
end
result
6.建立5×6矩阵,要求输出矩阵的第n行元素。
当n值超过矩阵的行数时,自动转为输
出矩阵的最后一行元素,并给出出错信息。
row=input('input a row:');
A=zeros(5,6);
A(:)=1:30;
try
C= A(row,:);
catch
C=A(end,:);
end
C
lasterr
7.产生20个两位随机整数,输出其中小于平均数的偶数。