matlab实验报告
Matlab实验报告(三)-MATLAB绘图

实验目的1.掌握MATLAB的基本绘图命令。
2.掌握运用MATLAB绘制一维、二维、三维图形的方法.3.给图形加以修饰。
一、预备知识1.基本绘图命令plotplot绘图命令一共有三种形式:⑴plot(y)是plot命令中最为简单的形式,当y为向量时,以y的元素为纵坐标,元素相应的序列号为横坐标,绘制出连线;若y为实矩阵,则按照列绘出每列元素和其序列号的对应关系,曲线数等于矩阵的列数;当y为复矩阵时,则按列以每列元素的实部为横坐标,以虚部为纵坐标,绘出曲线,曲线数等于列数。
⑵ plot(x,y,[linspec])其中linspec是可选的,用它来说明线型。
当x和y为同维向量时,以x为横坐标,y为纵坐标绘制曲线;当x是向量,y是每行元素数目和x维数相同的矩阵时,将绘出以x为横坐标,以y中每行元素为纵坐标的多条曲线,曲线数等于矩阵行数;当x为矩阵,y为相应向量时,使用该命令也能绘出相应图形。
⑶ plot(x1,y1,x2,y2,x3,y3……)能够绘制多条曲线,每条曲线分别以x和y为横纵坐标,各条曲线互不影响。
线型和颜色MATLAB可以对线型和颜色进行设定,线型和颜色种类如下:线:—实线:点线 -.虚点线——折线点:.圆点 +加号 *星号 x x型 o 空心小圆颜色:y 黄 r 红 g 绿 b 蓝 w 白 k 黑 m 紫 c 青特殊的二维图形函数表5 特殊2维绘图函数[1] 直方图在实际中,常会遇到离散数据,当需要比较数据、分析数据在总量中的比例时,直方图就是一种理想的选择,但要注意该方法适用于数据较少的情况。
直方图的绘图函数有以下两种基本形式。
·bar(x,y) 绘制m*n 矩阵的直方图.其中y 为m *n 矩阵或向量,x 必须单向递增。
·bar(y) 绘制y 向量的直方图,x 向量默认为x=1:m close all; %关闭所有的图形视窗。
x=1:10;y=rand (size(x )); bar(x,y ); %绘制直方图.123456789100.51Bar()函数还有barh ()和errorbar ()两种形式,barh()用来绘制水平方向的直方图,其参数与bar()相同,当知道资料的误差值时,可用errorbar ()绘制出误差范围,其一般语法形式为:errorbar (x,y,l,u)其中x,y 是其绘制曲线的坐标,l ,u 是曲线误差的最小值和最大值,制图时,l 向量在曲线下方,u 向量在曲线上方。
基于matlab的实验报告

基于matlab的实验报告实验报告:基于MATLAB 的实验一、实验目的通过使用MATLAB 软件,掌握如何进行数据分析、图像处理、算法实现等一系列实验操作,提高实验者的实践能力和动手能力。
二、实验原理MATLAB 是一种在科学计算和技术开发领域广泛应用的计算机软件。
它能进行矩阵计算、绘制函数和数据图像、实现算法以及进行数据分析等。
通过掌握MATLAB 的使用,能够快速、高效地解决各种科学和工程问题。
三、实验内容1. 数据分析:使用MATLAB 的数据分析工具进行数据的导入、处理和分析。
2. 图像处理:利用MATLAB 的图像处理工具包对图像进行滤波、增强、分割等操作。
3. 算法实现:使用MATLAB 实现常用的算法,如排序、搜索、图像压缩等。
四、实验步骤1. 数据分析:(1)使用MATLAB 的读取数据函数将数据导入MATLAB 环境中。
(2)利用MATLAB 的数据处理函数进行数据清洗和预处理。
(3)使用MATLAB 的统计工具进行数据分析,如求平均值、标准差等。
(4)利用MATLAB 的绘图函数将分析结果可视化。
2. 图像处理:(1)使用MATLAB 的读取图像函数将图像导入MATLAB 环境中。
(2)利用MATLAB 的图像处理工具包进行滤波操作,如均值滤波、中值滤波等。
(3)使用MATLAB 的图像增强函数对图像进行锐化、变换等操作。
(4)利用MATLAB 的图像分割算法对图像进行分割。
3. 算法实现:(1)使用MATLAB 编写排序算法,如冒泡排序、快速排序等。
(2)使用MATLAB 编写搜索算法,如二分查找、线性搜索等。
(3)使用MATLAB 实现图像压缩算法,如离散余弦变换(DCT)。
五、实验结果实验中,我们使用MATLAB 完成了数据分析、图像处理和算法实现的一系列实验操作。
通过数据分析,我们成功导入了数据并对其进行了清洗和预处理,最后得到了数据的统计结果。
在图像处理方面,我们对图像进行了滤波、增强和分割等操作,最终得到了处理后的图像。
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:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
MATLAB信号与系统实验报告19472[五篇范文]
![MATLAB信号与系统实验报告19472[五篇范文]](https://img.taocdn.com/s3/m/a72999dee109581b6bd97f19227916888486b9f2.png)
MATLAB信号与系统实验报告19472[五篇范文]第一篇:MATLAB信号与系统实验报告19472信号与系统实验陈诉(5)MATLAB 综合实验项目二连续系统的频域阐发目的:周期信号输入连续系统的响应可用傅里叶级数阐发。
由于盘算历程啰嗦,最适适用MATLAB 盘算。
通过编程实现对输入信号、输出信号的频谱和时域响应的盘算,认识盘算机在系统阐发中的作用。
任务:线性连续系统的系统函数为11)(+=ωωjj H,输入信号为周期矩形波如图 1 所示,用MATLAB 阐发系统的输入频谱、输出频谱以及系统的时域响应。
-3-2-1 0 1 2 300.511.52Time(sec)图 1要领:1、确定周期信号 f(t)的频谱nF&。
基波频率Ω。
2、确定系统函数 )(Ω jn H。
3、盘算输出信号的频谱n nF jn H Y&&)(Ω=4、系统的时域响应∑∞-∞=Ω=nt jnn eY t y&)(MATLAB 盘算为y=Y_n*exp(j*w0*n“*t);要求(画出 3 幅图):1、在一幅图中画输入信号f(t)和输入信号幅度频谱|F(jω)|。
用两个子图画出。
2、画出系统函数的幅度频谱|H(jω)|。
3、在一幅图中画输出信号y(t)和输出信号幅度频谱|Y(jω)|。
用两个子图画出。
解:(1)阐发盘算:输入信号的频谱为(n)输入信号最小周期为=2,脉冲宽度,基波频率Ω=2π/ =π,所以(n)系统函数为因此输出信号的频谱为系统响应为(2)步伐:t=linspace(-3,3,300);tau_T=1/4;%n0=-20;n1=20;n=n0:n1;%盘算谐波次数20F_n=tau_T*Sa(tau_T*pi*n);f=2*(rectpuls(t+1.75,0.5)+rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5));figure(1),subplot(2,1,1),line(t,f,”linewidth“,2);%输入信号的波形 axis([-3,3,-0.1,2.1]);grid onxlabel(”Time(sec)“,”fontsize“,8),title(”输入信号“,”fontweight“,”bold“)%设定字体巨细,文本字符的粗细text(-0.4,0.8,”f(t)“)subplot(2,1,2),stem(n,abs(F_n),”.“);%输入信号的幅度频谱xlabel(”n“,”fontsize“,8),title(”输入信号的幅度频谱“,”fontweight“,”bold“)text(-4.0,0.2,”|Fn|“)H_n=1./(i*n*pi+1);figure(2),stem(n,abs(H_n),”.“);%系统函数的幅度频谱xlabel(”n“,”fontsize“,8),title(”系统函数的幅度频谱“,”fontweight“,”bold“)text(-2.5,0.5,”|Hn|“)Y_n=H_n.*F_n;y=Y_n*exp(i*pi*n”*t);figure(3),subplot(2,1,1),line(t,y,“linewidth”,2);%输出信号的波形 axis([-3,3,0,0.5]);grid onxlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)text(-0.4,0.3,“y(t)”)subplot(2,1,2),stem(n,abs(Y_n),“.”);%输出信号的幅度频谱xlabel(“n”,“fontsize”,8),title(“输出信号的幅度频谱”,“fontweight”,“bold”)text(-4.0,0.2,“|Yn|”)(3)波形:-3-2-1 0 1 2 300.511.52Time(sec)输入信号f(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输入信号的幅度频谱|Fn|-20-15-10-5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91n系统函数的幅度频谱|Hn|-3-2-1 0 1 2 300.10.20.30.4Time(sec)输出信号y(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输出信号的幅度频谱|Yn| 项目三连续系统的复频域阐发目的:周期信号输入连续系统的响应也可用拉氏变更阐发。
程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
matlab实验报告

matlab实验报告实验1 熟悉matlab 的开发环境及矩阵操作⼀、实验的教学⽬标通过本次实验使学⽣熟悉MATLAB7.0的开发环境,熟悉MA TLAB ⼯作界⾯的多个常⽤窗⼝包括命令窗⼝、历史命令窗⼝、当前⼯作⽬录窗⼝、⼯作空间浏览器窗⼝等。
掌握建⽴表达式书写规则及常⽤函数的使⽤,建⽴矩阵的⼏种⽅法。
⼆、实验环境计算机、MATLAB7.0集成环境三、实验内容1、熟悉命令窗⼝的使⽤,⼯作空间窗⼝的使⽤,⼯作⽬录、搜索路径的设置。
命令历史记录窗⼝的使⽤,帮助系统的使⽤。
2、在当前命令窗⼝中输⼊以下命令:x=0:2:10 y=sqrt(x),并理解其含义。
3、求下列表达式的值(1)w=)1034245.01(26-?+?(2)x=ac b e abc cb a ++-+++)tan(22ππ,其中a=3.5,b=5,c=-9.8 四、实验总结1、熟悉了命令窗⼝的使⽤,⼯作空间窗⼝的使⽤。
2、了解了⼯作⽬录、搜索路径的设置⽅法。
---5317383399351542实验2 MATLAB 基本运算⼀、实验的教学⽬标通过本次实验使学⽣掌握向量和矩阵的创建⽅法;掌握矩阵和数组的算术运算、逻辑运算和关系运算;掌握字符数组的创建和运算;了解创建元胞数组和结构体的⽅法。
⼆、实验环境计算机、MATLAB7.0集成环境三、实验内容1、要求在闭区间]2,0[π上产⽣具有10个等距采样点的⼀维数组。
试⽤两种不同的指令实现。
(提⽰:冒号⽣成法,定点⽣成法)2、由指令rng('default'),A=rand(3,5)⽣成⼆维数组A ,试求该数组中所有⼤于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。
(提⽰:find 和sub2ind )3、创建3阶魔⽅矩阵a 和3阶对⾓阵b ,c=a(1:3,1:3)(1)计算矩阵a,b 和c 的⾏列式、逆矩阵并进⾏最⼤值的统计。
(2)⽐较矩阵和数组的算术运算:b 和c 的*、/、^和.*、./、.^。
初识MATLAB的实验报告

初识MATLAB的实验报告1. 引言MATLAB(Matrix Laboratory)是一种高级的技术计算环境和编程语言。
它具有强大的矩阵计算能力和丰富的科学和工程绘图功能,被广泛应用于各个领域的科研与工程实践中。
本实验旨在初步了解MATLAB的基本语法和功能,通过实际操作加深对MATLAB编程的理解。
2. 实验目的1. 掌握MATLAB的安装和基本使用方法;2. 学习MATLAB中的常用数学函数和操作;3. 了解MATLAB绘图功能并能够绘制简单的图形。
3. 实验步骤3.1 MATLAB安装首先,在官方网站(3.2 MATLAB入门3.2.1 MATLAB语法MATLAB的语法类似于其他常见的编程语言,每个语句以分号结尾。
在MATLAB 中,可以直接进行基本的数学运算,例如加减乘除、指数、对数等。
通过以下代码可以计算两个变量的和并将结果打印出来:matlaba = 10;b = 20;sum = a + b;disp(sum);3.2.2 MATLAB变量在MATLAB中,可以创建和操作各种类型的变量,例如数值、字符串、矩阵等。
以下代码演示了如何创建一个矩阵:matlabmatrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];disp(matrix);3.2.3 MATLAB函数MATLAB提供了许多内置的数学函数,可以直接调用。
以下代码演示了如何计算正弦函数值并打印结果:matlabx = pi/4;y = sin(x);disp(y);3.3 MATLAB绘图MATLAB具有强大的绘图功能,可以绘制各种图形,如曲线、散点图、柱状图等。
以下代码演示了如何绘制一个简单的正弦曲线:matlabx = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);xlabel('x');ylabel('y');title('Sine Curve');4. 实验结果与分析在完成上述实验步骤后,我们成功安装了MATLAB,并学习了基本的语法、变量和函数的使用方法。
自动控制原理MATLAB仿真实验报告

实验一 典型环节的MATLAB 仿真 一、实验目的1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、实验内容① 比例环节1)(1=s G 和2)(1=s G ;Simulink 图形实现:示波器显示结果:② 惯性环节11)(1+=s s G 和15.01)(2+=s s GSimulink 图形实现:示波器显示结果:③ 积分环节s s G 1)(1Simulink 图形实现:示波器显示结果:④ 微分环节s s G )(1Simulink 图形实现:波器显示结果:⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G1)、G1(s )=s+2Simulink 图形实现:示波器显示结果:2)、G2(s)=s+1 Simulink图形实现:示波器显示结果:⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=1)、G1(1)=1+1/sSimulink 图形实现:示波器显示结果:2)G2(s)=1+1/2s Simulink图形实现:示波器显示结果:三、心得体会通过这次实验我学到了很多,对课本内容加深了理解,熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法,加深对各典型环节响应曲线的理解,这为对课程的学习打下了一定基础。
实验二线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
2.通过响应曲线观测特征参量ζ和nω对二阶系统性能的影响。
3.熟练掌握系统的稳定性的判断方法。
二、实验内容1.观察函数step( )的调用格式,假设系统的传递函数模型为243237()4641s s G s s s s s ++=++++绘制出系统的阶跃响应曲线?2.对典型二阶系统222()2n n n G s s s ωζωω=++1)分别绘出2(/)n rad s ω=,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标,,,,p r p s ss t t t e σ。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.2511
>> x2=fminbnd(@shiyan0503,2,5)
x2 =
3.3233
练习:
利用函数句柄求[-1,1]的面积。
>> x=-1:0.1:1;
>> y=shiyan0503(x);
>> area=trapz(x,y) %用梯形计算积分
area =
0.0485
>> area1=quad(@shiyan0503,-1,1) %用quad计算积分
>> y=eval(g,x);
>> plot(x,y)
运行程序得到下图:
③求零点
>> x1=fzero(g,0.5)
x1 =
0.5198
自我练习:
(1)编写函数计算输入参数r为圆半径的圆面积和周长。
程序如下所示:
g='pi*r^2'
k='2*pi*r'
r=input('请输入圆的半径r:')
disp('圆的面积:')
(5)程序的调试。当有多个函数调用时,由于函数变量的工作空间是独立的,被调用的函数执行结束后变量消失,因此调试时要使用matlab调试器查看运行过程中的变量值。
①设置断点。在需要查看的程序的地方设置断点,
>> shiyan0502(0.7)
K>> y
y =
0.7000
K>> x=0.5
x =
0.5000
实验报告
课程名称:可视化计算机语言
实验项目名称:matlab程序设计
学院:信息工程学院
专业:电子信息工程
指导教师:
报告人:学号:班级:
实验时间:
实验报告提交时间:
教务部制
一、实验目的与要求:
1、熟练掌握matlab的程序流程控制结构。
2、熟悉掌握M文件的结构和函数调用。
3、掌握内联函数和函数句柄的使用。
functiony=shiyan0502(x)
%shiyan0502 arcsinx
global n;
n=1;
ifabs(x)<1
y=x;
whilecal(n)>0.0001
y=y+cal(n)*x^(2*n+1);
n=n+1;
end
else
disp('
functionk=cal(n1)
>> y=shiyan0502(0.7)
y =
0.7754
当输入参数不满足条件是退出程序:
>> y1=shiyan0502(2)
输入错误
y1 =
0
练习:
如果不使用子函数factorial,而直接在cal函数中计算阶乘,应如何修改程序。
修改cal函数如下所示:
functionk=cal(n1)
%计算系数
y=(sin(t)).^2.*exp(a*t)-b*abs(t);
②查看该函数的输出波形,如下图所示:
③利用函数名求零点,在上图中可以看相互在0的附近有2个过零点
x1=fzero('shiyan0503',0.5)
x2=fzero('shiyan0503',-0.5)
运行结果如下所示:
>> shiyan0503_1
程序如下所示:
functiony=shiyan0502(x)
%shiyan0502 arcsinx
n=1;
ifabs(x)<1
y=x;
whilecal(n)>0.0001
y=y+cal(n)*x^(2*n+1);
n=n+1;
end
else
disp('输入错误');
y=0;
return
end
运行结果:
%计算系数
form=1:n1
k=factorial(2*n1)/(2^(2*n1)*(factorial(n1))^2*(2*n1+1));
end
输入参数n=5
运行结果如下图所示:
>> cal(5)
ans =
0.0224
本函数中调用了求阶乘的子函数factorial
(3)主程序shiyan0502.求主函数计算arcsinx,输入参数为x,输出参数为arcsinx的计算结果。
在K>>输入x=0.5即可将x的值从0.7修改为0.5.
去除断点,查看结果:
ans =
0.7236
结果与x值为0.7时不一致,当x=0.7时,y =0.7754,由此可知,x的值已被修改。
②单步运行
>> shiyan0502(0.7)
9 n=n+1;
K>>
按单步运行键:
可看到箭头不断的移动:
(6)使用函数句柄。在命令窗口使用函数句柄调用函数。
|
|
|
练习:
使用单步运行调试,查看全局变量n的变化,并在工作空间查看n;
3、利用泛函命令实现数值分析
①创建函数shiyan0503实现上述表达式关系。
functiony=shiyan0503(t)
%shiyan0503 y=(sin(t)).^2.*exp(a*t)-b*abs(t)
a=0.1;
b=0.5;
4、了解程序性能剖析窗口。
二、内容和步骤:
MATLAB的语法规则简洁,编程效率高,作为一个完整的程序语言,MATLAB也有各种程序流程控制,文件格式和函数调用的规则,通过对函数的调用就能够组成庞大的程序,完成复杂的功能。
1.使用程序流程控制
Fibonacci数列的各元素为:1、1、2、3、5、8、...满足一下关系
fori=2:n
iff(i)>10
break
else
f(i+1)=f(i-1)+f(i);
end
end
当某个元素大于50,程序便退出循环结构
当n=10,最后一个元素刚好是大于50的,正好退出循环结构
当n=12时,第十个元素对应的f(i)大于50,于是退出循环结构,不再运行f(11),f(12)了。
(5)将该.m文件生成P码文件
y=eval(g,r)
disp('圆的周长:')
y1=eval(k,r)
运行结果如所示:
假设输入圆的半径为3
g =
pi*r^2
k =
2*pi*r
请输入圆的半径r:3
r =
3
圆的面积:
y =
28.2743
圆的周长:
y1 =
18.8496
(2)创建内联函数计算y=sin(r)/r,使用函数句柄调用,并绘制曲线。
运行结果如下所示:
please input a num:12
n =
12
ans =
1 1 2 3 5 8 13 21 34 55 89
2.使用函数调用
计算arcsin(x),
(1)子函数factorial计算n!子函数factorial计算n!输入参数为n,使用for循环实现的阶乘,输出参数为阶乘。
在matlab界面中选择“file->new->function”命令,创建一个新的函数文件,修改输入输出参数和函数名。
global n
form=1:n
k=factorial(2*n)/(2^(2*n)*(factorial(n))^2*(2*2*n+1));
End
global为设置的全局变量,子函数没有输入变量,而用全局变量n传递。
在全局变量前设置断点,然后运行程序,当程序运行到断点处停止,接着不断使用单步运行调试,结果如下所示:
>>y=inline('sin(r)./r')
y =
内联函数:
y(r) = sin(r)./r
>> x=-10:0.1:10;
>> f=feval(y,x);
>>plot(x,f)
运行结果如下图所示:
三、实验结论:
通过该实验较为熟练地掌握matlab的一些基本操作,掌握熟练掌握matlab的程序流程控制结构,
熟悉掌握M文件的结构和函数调用,掌握内联函数和函数句柄的使用,了解程序性能剖析窗口。
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
functionf=factorial(n)%[ output_args ] = Untitled7( input_args )
%UNTITLED7此处显示有关此函数的摘要
%此处显示详细说明
f=1;
form=1:n
f=m*f;
(2)子函数cal.子函数cal是计算系数
functionk=cal(n1)
x1 =
0.5198
x2 =
-0.5993
④利用函数句柄求过零点
>> x1=fzero(@shiyan0503,0.5)
x1 =
0.5198
>> x2=fzero(@shiyan0503,-0.5)
x2 =
-0.5993
⑤利用函数句柄求极小值,由②图可知,极小值有多个,查看其中2个
>> x1=fminbnd(@shiyan0503,0.1,0.7)