Matlab上机实验
实验一 MATLAB基础训练
实验一 MATLAB基础训练一、实验目的本次上机实验主要练习使用Matlab的基本操作和基础知识,包括数组(复数、向量、矩阵、结构体数组等)的创建和数组元素的操作和运算、矩阵的运算、Matlab的运算符(尤其是点运算‘.’)、脚本M文件和函数M文件的编写、Matlab文件的编程(基本的流程控制结构)、基本的二维和三维绘图方法以及图形的标注等。
希望通过本次实验使大家尽量在短时间内(4学时)掌握Matlab的基本操作和基础知识,为后面的实验项目奠定基础。
二、实验原理参见PPT中有关内容。
三、实验内容1. 上机练习课件中的例子。
2. 设两个复数a=1+2i, b=3-4i, 计算a+b, a-b, a*b, a/b, a和b的模。
3. 计算下式的结果,其中x=-3.5°, y=6.7°(提示:①应将角度单位由度转换为数学函数所能处理的弧度值;②求根函数sqrt,取绝对值函数abs,具体用法用help查询)4. 对矩阵123456789A⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦, 实现下列操作:(1) 左右翻转(fliplr命令)(2) 上下翻转(flipud命令)(3) 利用cat命令分别将A扩展成3×6和6×3的矩阵(3) 分别提取A的第2行,第2列,对角线元素(4) 删除A的第2行2列的元素(提示:将矩阵元素赋空阵[]可以删除元素,注意此时元素的访问只能使用单下标的方式。
观察删除元素后,A中元素的排列方式的变化)5. 创建[0,2π]区间上拥有100个等间隔元素的列向量...x.(Matlab默认是行向量),并绘制y=sin(x1/3)的函数图像。
6. 创建如下图所示的单结构体数组。
7. 编程训练:下图所示电路中,R 1=2Ω, R 2=4Ω, R 3=12Ω, R 4=4Ω, R 5=12Ω, R 6=4Ω, R 7=2Ω, u s =10V, 求i 3。
(要求:以脚本M 文件方式建立程序。
MATLAB课后上机实验报告
《MATLAB程序设计与应用》实验指导书实验一 matlab 集成环境使用与运算基础1,先求下列表达式的值,然后显示matlab 工作空间的使用情况并保存全部变量。
(1)0122sin851z e =+程序:.>> z1=2*sin(85*pi/180)/(1+exp(2)) 结果: z1 =0.2375(2)22121(0.4552i z In x x +⎡⎤=+=⎢⎥-⎣⎦其中 程序:>> x=[2,1+2*i;-0.45,5];>> z2=0.5*log(x+sqrt(1+x*x)) 结果: z2 =0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i(3)0.3,9.2,8.2,...,8.2,9.2,0.3,23.0)3.0sin(23.03.03---=+++-=-a aIn a e e z a a 提示:利用冒号表达式生成a 向量,求各点函数值时用点乘运算。
程序:>> a=-3.0:0.1:30;>> z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2) 结果: z3 =1.0e+003 *Columns 1 through 40.0003 + 0.0031i 0.0003 + 0.0031i 0.0003 + 0.0031i 0.0002 + 0.0031iColumns 5 through 80.0002 + 0.0031i 0.0001 + 0.0031i 0.0001 + 0.0031i 0.0000 + 0.0031i Columns 9 through 12-0.0000 + 0.0031i -0.0001 + 0.0031i -0.0001 + 0.0031i -0.0002 + 0.0031i Columns 13 through 16-0.0003 + 0.0031i -0.0003 + 0.0031i -0.0004 + 0.0031i -0.0005 + 0.0031i Columns 17 through 20-0.0006 + 0.0031i -0.0007 + 0.0031i -0.0008 + 0.0031i -0.0009 + 0.0031i Columns 21 through 24-0.0010 + 0.0031i -0.0012 + 0.0031i -0.0014 + 0.0031i -0.0016 + 0.0031i Columns 25 through 28-0.0019 + 0.0031i -0.0023 + 0.0031i -0.0030 + 0.0031i -0.0370 Columns 29 through 32-0.0030 -0.0023 -0.0019 -0.0016 Columns 33 through 36-0.0014 -0.0012 -0.0010 -0.0009 Columns 37 through 40-0.0008 -0.0007 -0.0006 -0.0005 Columns 41 through 44-0.0004 -0.0003 -0.0003 -0.0002 Columns 45 through 48-0.0001 -0.0001 -0.0000 0.0000 Columns 49 through 520.0001 0.0001 0.0002 0.0002 Columns 53 through 560.0003 0.0003 0.0003 0.0004 Columns 57 through 600.0004 0.0005 0.0005 0.0005 Columns 61 through 640.0006 0.0006 0.0006 0.0007 Columns 65 through 680.0007 0.0007 0.0008 0.0008 Columns 69 through 720.0008 0.0008 0.0009 0.0009 Columns 73 through 760.0009 0.0010 0.0010 0.0010 Columns 77 through 800.0011 0.0011 0.0011 0.0011 Columns 81 through 840.0012 0.0012 0.0012 0.0013 Columns 85 through 880.0013 0.0013 0.0013 0.0014 Columns 89 through 920.0014 0.0014 0.0015 0.0015 Columns 93 through 960.0015 0.0016 0.0016 0.0016 Columns 97 through 1000.0017 0.0017 0.0017 0.0018 Columns 101 through 1040.0018 0.0018 0.0019 0.0019 Columns 105 through 1080.0020 0.0020 0.0020 0.0021 Columns 109 through 1120.0021 0.0022 0.0022 0.0023 Columns 113 through 1160.0023 0.0024 0.0024 0.0025 Columns 117 through 1200.0025 0.0026 0.0026 0.0027 Columns 121 through 1240.0027 0.0028 0.0029 0.0029 Columns 125 through 1280.0030 0.0031 0.0031 0.0032 Columns 129 through 1320.0033 0.0034 0.0034 0.0035 Columns 133 through 1360.0036 0.0037 0.0038 0.0039 Columns 137 through 1400.0040 0.0041 0.0042 0.0043 Columns 141 through 1440.0044 0.0045 0.0046 0.0047 Columns 145 through 1480.0049 0.0050 0.0051 0.0053 Columns 149 through 1520.0054 0.0056 0.0057 0.0059 Columns 153 through 1560.0060 0.0062 0.0064 0.0066 Columns 157 through 1600.0068 0.0069 0.0071 0.0074 Columns 161 through 1640.0076 0.0078 0.0080 0.0083 Columns 165 through 1680.0085 0.0088 0.0090 0.0093 Columns 169 through 1720.0096 0.0099 0.0102 0.0105 Columns 173 through 1760.0108 0.0112 0.0115 0.0119 Columns 177 through 1800.0123 0.0127 0.0131 0.0135 Columns 181 through 1840.0139 0.0144 0.0148 0.0153 Columns 185 through 1880.0158 0.0163 0.0168 0.0174 Columns 189 through 1920.0180 0.0185 0.0191 0.0198 Columns 193 through 1960.0204 0.0211 0.0218 0.0225 Columns 197 through 2000.0233 0.0241 0.0249 0.0257 Columns 201 through 2040.0265 0.0274 0.0284 0.0293 Columns 205 through 2080.0303 0.0313 0.0324 0.0335 Columns 209 through 2120.0346 0.0358 0.0370 0.0382 Columns 213 through 2160.0395 0.0409 0.0423 0.0437 Columns 217 through 2200.0452 0.0467 0.0483 0.0500 Columns 221 through 2240.0517 0.0534 0.0552 0.0571 Columns 225 through 2280.0591 0.0611 0.0632 0.0654 Columns 229 through 2320.0676 0.0699 0.0723 0.0748 Columns 233 through 2360.0773 0.0800 0.0827 0.0856 Columns 237 through 2400.0885 0.0915 0.0947 0.0979 Columns 241 through 2440.1013 0.1047 0.1083 0.1121 Columns 245 through 2480.1159 0.1199 0.1240 0.1282 Columns 249 through 2520.1326 0.1372 0.1419 0.1467 Columns 253 through 2560.1518 0.1570 0.1624 0.1679 Columns 257 through 2600.1737 0.1796 0.1858 0.1921 Columns 261 through 2640.1987 0.2055 0.2125 0.2198 Columns 265 through 2680.2273 0.2351 0.2431 0.2514 Columns 269 through 2720.2600 0.2689 0.2781 0.2876 Columns 273 through 2760.2974 0.3076 0.3180 0.3289 Columns 277 through 2800.3401 0.3517 0.3637 0.3761 Columns 281 through 2840.3889 0.4021 0.4158 0.4299 Columns 285 through 2880.4446 0.4597 0.4753 0.4915 Columns 289 through 2920.5082 0.5254 0.5433 0.5617 Columns 293 through 2960.5807 0.6004 0.6208 0.6418 Columns 297 through 3000.6636 0.6861 0.7093 0.7333 Columns 301 through 3040.7581 0.7838 0.8103 0.8377 Columns 305 through 3080.8660 0.8952 0.9254 0.9567 Columns 309 through 3120.9890 1.0223 1.0568 1.0924 Columns 313 through 3161.1292 1.1673 1.2066 1.2472Columns 317 through 3201.2892 1.3326 1.3774 1.4237Columns 321 through 3241.4715 1.5210 1.5721 1.6249Columns 325 through 3281.6794 1.7357 1.7940 1.8541Columns 329 through 3311.9163 1.98052.0468(4)⎪⎩⎪⎨⎧=<≤<≤<≤+--=5.2:5.0:0,322110,121,2224t t t t t t t t z 其中提示:用逻辑表达式求分段函数值。
第1章--MATLAB语言上机操作实践
8
6.title 功能: 功能:在图形的上方标注图名。 调用格式: 调用格式:
title(′string′);在图形的上方标注由字符串表示的图名, 其中string的内容可以是中文或英文。
9
7.xlabel 功能: 功能:在横坐标的下方标注说明。 调用格式: 调用格式:
15 (3)在MATLAB命令窗口输入: H1=ones(3,2) H2=zeros(2,3) H3=eye(4) 观察输出结果。
16
2.数组的基本运算 数组的基本运算
在MATLAB命令(Command)窗口: (1)输入A=[1 3 5],B=[2 4 6],求C=A+B,D =A-2,E=B-A。 (2)求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B, F5=B.\A,F6=B.^A,F7=2./B,F8=B.\2。 (3)求Z1=A*B′,Z2=B′*A。 观察以上各输出结果,比较各种运算的区别,理解其 含义。
24
五、实验预习
(1)认真阅读附录1,明确以下问题: ①MATLAB语言与其它计算机语言相比,有何特点? ②MATLAB的工作环境主要包括几个窗口?这些窗口 的主要功能是什么? ③MATLAB如何进行数组元素的寻访和赋值?在赋值 语句中,各种标点符号的作用如何? ④数组运算有哪些常用的函数?MATLAB中如何处理 复数? ⑤数组运算与矩阵运算有何异同?重点理解数组运算 中点乘(.*)和点除(./或.\)的用法。
13 A([2,5],:)=[] A/2 A(4,:)=[sqrt(3) (4+5)/6*2 -7] 每输入一行命令,观察输出的结果,然后在上述各命 令行的后面标注其含义。
matlab上机试验[教学]
Matlab 上机实验一、 实验目的1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数;2、 熟悉并掌握图像输入、输出及其常用处理的函数。
二、 实验内容1 绘制函数的网格图和等高线图。
422cos cos y x yex z +-=其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。
2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色处理。
⎪⎩⎪⎨⎧===s z t s y ts x sin sin cos cos cos230,20ππ≤≤≤≤t s3 已知⎪⎪⎩⎪⎪⎨⎧>++≤+=0),1ln(210,22x x x x e x y π在-5<=x<=5区间绘制函数曲线。
4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作:a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例;b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=y1*y2”。
5 在xy 平面内选择区域[][],,-⨯-8888,绘制函数z =的三种三维曲面图。
6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”.7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为[-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签8 有一组测量数据满足-ate =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成)9 22y x xez --=,当x 和y 的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。
MATLAB上机实验
MATLAB上机实验
实验一:MATLAB语言概述上机
一、实验目的:了解MATLAB的工作环境;simulink仿真;和符号表达式绘图fplot(fun,lims),ezplot(y)
二、实验环境 MATLAB软件
三、实验内容
一、Simulink仿真,画出输入输出图形
二、1 熟悉常见的MATLAB命令:Esc,clc,exit,quit,help sin,help tan…
2 fomat命令:
1.format命令改变显示格式,常用的的格式有
•long (16位) bank(2个十进制位) hex(十六进制)
•short(缺省) short e(5位加指数) +(符号)
• long e(16位加指数) rat(有理数近似)
三、符号表达式绘图
sinx,cosx sin(1/x) tanx e-2x ;及自己绘制《电路》和《信号系统》课程常见函数。
四、在文本编辑窗口编辑简单程序并调试
1用plot绘画:0≤x≤7范围内的sin(2x)、sinx2、sin2x,sinx(1/x); ;及自己绘制《电路》和《信号系统》
2 用stairs绘下面图1所示图形和其他自己设计的图形
五、实验报告要求:
1写出源程序,并加注解
2上机调试出现的错误提示,错误的原因及解决的办法
3实验结果
4 总结实验,对实验进行结果分析
绘图1。
MATLAB第一次上机实验报告
第一章上机实验一.实验内容(一)熟悉Matlab的基本命令(1)工作空间管理:①Who和whos:显示当前工作空间的变量情况,例如想查询A和B两个变量的空间占用情况,则可以用命令whos A B。
如果只给出whos命令,则将显示工作空间中全部变量的变量名称、大小、内存占用情况及变量类型。
Who命令给出的结果是简单的,只显示当前工作空间中的变量名称。
②clear:删除工作空间中的变量。
Clear A B表示删除A和B两个变量;若只给出clear命令,则将删除工作空间内的所有变量。
③which:显示出某个MATLAB文件所在目录,如which xxure将给出xxure.m 文件所在目录。
④quit:退出⑤workspace:该命令将打开工作空间浏览器窗口。
(2)路径编辑:①path:显示MATLAB包含路径。
②cd:返回上一级目录。
③addpath:将一个新的字符串表示的子目录名添加到MATLAB包含的路径下。
④rmpath:从当前MATLAB包含的路径下清除某个字符串表示的子目录。
(3)显示格式:①format long:双精度数表示小数点后14位有效数字,单精度数表示小数点后7位有效数字。
②short e:5位科学计数表示。
③short g:从format short和format short e中自动选择最佳计数方式(默认设置)④long g:从format long和format long e中自动选择最佳计数方式⑤hex:十六进制表示⑥rat:近似有理数表示(4)窗口清理:①clc:命令窗口清屏。
②cla:可以清除当前坐标系下的内容。
③clf:图形窗口清屏。
④close:用于关闭所有的图形窗口。
(5)操作系统命令:①copyfile:复制文件②pwd(Identify current directory):显示当前的工作目录名称。
(6)熟悉Matlab的联机帮助命令:①help:可以达到帮助信息目录。
matlab上机实验报告ppt
matlab上机实验报告pptMATLAB上机实验报告摘要:本实验报告利用MATLAB软件进行了一系列实验,包括数据处理、图像处理、信号处理等内容。
通过实验,我们掌握了MATLAB软件的基本操作和应用技巧,提高了数据分析和处理的能力。
1. 实验背景MATLAB是一种用于数学计算、数据分析和可视化的高级技术计算语言和交互式环境。
它是工程师和科学家们进行算法开发、数据分析、数据可视化和数值计算的首选工具。
本次实验旨在通过实际操作,掌握MATLAB的基本操作和应用技巧。
2. 实验内容本次实验主要包括以下内容:(1)数据处理:利用MATLAB对一组实验数据进行处理,包括数据的导入、清洗、分析和可视化。
(2)图像处理:利用MATLAB对一幅图像进行处理,包括图像的读取、处理和保存。
(3)信号处理:利用MATLAB对一组信号进行处理,包括信号的生成、滤波和频谱分析。
3. 实验过程(1)数据处理:首先,我们利用MATLAB将实验数据导入到工作空间中,然后对数据进行清洗和分析,最后利用MATLAB绘制出数据的可视化图表。
(2)图像处理:我们利用MATLAB读取一幅图像,并对图像进行处理,比如调整图像的亮度、对比度等参数,最后保存处理后的图像。
(3)信号处理:我们利用MATLAB生成一组信号,并对信号进行滤波处理,然后利用MATLAB进行信号的频谱分析。
4. 实验结果通过本次实验,我们成功地利用MATLAB对实验数据进行了处理和分析,得到了清晰的数据可视化图表;对一幅图像进行了处理,并保存了处理后的图像;对一组信号进行了滤波处理,并进行了频谱分析。
实验结果表明,MATLAB是一款功能强大、灵活多样的工程计算软件,能够满足工程师和科学家们的各种需求。
5. 实验结论本次实验通过MATLAB软件的实际操作,使我们掌握了MATLAB的基本操作和应用技巧,提高了我们的数据分析和处理能力。
同时,也加深了我们对MATLAB软件的理解和认识,为今后的工程计算和科学研究打下了坚实的基础。
matlab上机实验心得
MATLAB上机实验心得1. 引言在学习MATLAB课程期间,我们进行了一系列的上机实验。
通过这些实验,我深刻体会到了MATLAB在数学建模和数据分析方面的强大功能。
本文将详细介绍我在实验中的学习心得和体会,并分享一些使用MATLAB进行数据处理和可视化的技巧。
2. 实验一:MATLAB基础在第一次实验中,我们掌握了MATLAB的基本操作和语法。
通过编写简单的脚本,我学会了如何定义变量、进行算术运算、使用条件语句和循环结构等。
我还学会了如何使用MATLAB自带的函数库来解决常见的数学问题。
这次实验让我对MATLAB有了初步的认识,并为后续实验打下了坚实的基础。
3. 实验二:数据处理与可视化在第二次实验中,我们探索了MATLAB在数据处理和可视化方面的能力。
我们使用了一些常见的数据处理函数,如读取文件、筛选数据、计算统计量等。
我们还学习了如何使用plot函数绘制线图、scatter函数绘制散点图以及histogram函数绘制直方图等。
通过这次实验,我意识到MATLAB在数据处理和可视化方面的高效和便捷。
使用MATLAB,我们可以快速地对大量数据进行处理和分析,并通过可视化方式直观地展示数据的特征和规律。
4. 实验三:数学建模第三次实验是最具挑战性的一次,我们需要运用MATLAB解决实际问题并进行数学建模。
在实验中,我们学习了如何将实际问题转化为数学模型,并使用MATLAB求解。
我们通过编写脚本来解决最优化问题、微分方程求解等。
这次实验让我深刻理解了数学建模的重要性,并提高了我的问题解决能力。
MATLAB 的强大计算能力和丰富的函数库为数学建模提供了极大的便利。
5. 实验四:图像处理在第四次实验中,我们学习了MATLAB在图像处理方面的应用。
我们掌握了如何读取、显示、修改和保存图像。
我们还学会了一些常见的图像处理算法,如灰度变换、直方图均衡化、滤波器等。
这次实验让我对图像处理有了初步的认识,并意识到MATLAB在该领域有着广泛应用。
matlab上机实验报告
matlab上机实验报告《Matlab上机实验报告:探索数据分析与图像处理的奇妙世界》摘要:本实验报告基于Matlab平台,探索了数据分析与图像处理的应用。
通过实验,我们发现Matlab具有强大的数据处理和图像处理能力,能够帮助我们快速高效地分析数据和处理图像。
本文将详细介绍实验过程和结果,以及对Matlab在数据分析与图像处理中的应用前景进行探讨。
1. 实验目的本次实验旨在通过Matlab平台进行数据分析与图像处理实验,探索Matlab在这两个领域的应用能力,为学习者提供实践机会,加深对数据分析与图像处理的理解,并为未来的科研工作和工程实践提供技术支持。
2. 实验内容2.1 数据分析我们首先使用Matlab对一组实验数据进行分析,包括数据的可视化、统计特征提取、数据拟合等操作。
通过Matlab强大的数据处理工具,我们可以快速准确地分析数据,提取出其中的规律和特征,为后续的决策和应用提供支持。
2.2 图像处理其次,我们利用Matlab对一组图像进行处理,包括图像的增强、滤波、边缘检测等操作。
通过Matlab丰富的图像处理工具,我们可以对图像进行各种操作,改善图像质量,提取图像特征,甚至实现图像识别和分析。
3. 实验结果在数据分析方面,我们利用Matlab对实验数据进行了可视化展示,并提取了数据的统计特征,得到了数据的分布规律和趋势。
在图像处理方面,我们利用Matlab对图像进行了增强和边缘检测,得到了处理后的图像,观察到了图像质量的改善和边缘特征的提取。
4. 实验结论通过本次实验,我们深刻认识到Matlab在数据分析与图像处理领域的强大能力,能够帮助我们快速高效地分析数据和处理图像,为科研工作和工程实践提供技术支持。
我们相信,在未来的发展中,Matlab将在数据分析与图像处理领域发挥越来越重要的作用。
5. 展望基于本次实验的结果,我们对Matlab在数据分析与图像处理领域的应用前景进行了展望。
我们相信,随着科技的不断发展,Matlab将在数据分析与图像处理领域发挥越来越重要的作用,为人类社会的进步和发展做出更大的贡献。
数字信号处理(MATLAB版)上机实验操作
实验一离散时间信号与系统一、实验目的:1、熟悉常见离散时间信号的产生方法;2、熟悉离散时间系统的单位脉冲响应和单位阶跃响应的求解方法;3、熟悉离散时间信号经过离散时间系统的响应的求解方法。
二、实验内容:已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求1、该系统的单位脉冲响应并绘图;2、该系统的单位阶跃响应并绘图;3、已知x(n)=可自己指定用filter函数经过系统的响应并绘图;4、用conv_m函数求系统响应并绘图。
三、实验平台:MA TLAB集成系统四、设计流程:此处写个人自己的设计流程五、程序清单:此处写程序内容六、调试和测试结果:此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法七、教师评语与成绩评定此处由老师填写上机操作:实验一离散时间信号与系统实验内容:1.脉冲响应>> b =[1,1]; a = [1,-0.5,0.06];n = [-10:25];>> impz(b,a,n);>> title('Impulse Response'); xlabel('n'); ylabel('h(n)')2.单位阶跃响应>> x = stepseq(0,-10,25); s = filter(b,a,x);Warning: Function call stepseq invokes inexact match d:\MATLAB7\work\STEPSEQ.M.>> stem(n,s)>> title('Step Response'); xlabel('n');ylabel('s(n)')3.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> s1=filter(b,a,x1);>> stem(n,s1);;xlabel('n');ylabel('s1(n)');4.>> a=[1,-0.5,0.06];b=[1,1];>> n=-20:120;>> h=impz(b,a,n);>> x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);>> [y,m]=conv_m(x1,n,h,n);Warning: Function call conv_m invokes inexact match d:\MATLAB7\work\CONV_M.M. >> stem(m,y);title('系统响应');xlabel('m');ylabel('y(m)');实验二离散信号与系统的连续频域分析一、实验目的:1、掌握离散时间信号的DTFT的MATLAB实现;2、掌握离散时间系统的DTFT分析;3、掌握系统函数和频率相应之间的关系。
MATLAB上机实验报告
MATLAB上机报告专业:姓名:学号:一、向量运算1.1向量的生成1.直接输入法--------------------------------------------------- 32.冒号表达式法 ------------------------------------------------- 33.函数法 ------------------------------------------------------- 3 2. 1向量的加减和数乘运算-------------------------------------------- 3向量的点、叉积运算--------------------------------------------- 31.点积运算------------------------------------------------------ 32.向量的叉积运算 --------------------------------------------- 3二、矩阵运算2.1矩阵元素的表示及相关操作1.元素的下标表示法2.矩阵元素的赋值2.2矩阵的创建1.直接输入法52.抽取法3.拼接法 ----------------------------------------------- 64.函数法-------------------------------------------------------- 75.拼接函数和变形函数法----------------------------------------- 86.加载法7.M文件法--------------------------------------------- 10 2.3矩阵的代数运算1.求矩阵行列式的值2.矩阵的加减、数乘与乘法--------------------- 103.求矩阵的逆矩阵4.矩阵的除法5.矩阵的秩------------------------ 116.求矩阵的特征值与特征向量7.矩阵的乘嘉与开方运算------------- 128.矩阵的指数与对数9,矩阵转置 ----------------------------------- 1310.矩阵的提取与翻转--------------------------------------------- 14三、数组运算3.1多维数组的创建1.下标赋值法2.工具阵函数法-------------------------------------- 153 .拼接和变形函数法 ---------------------------------------------- 16 3.2数组的代数运算1・数组的加减,数乘与乘法---------------------------------------- 172.数组的除法----------------------------------------------------- 183.数组的乘募与开方4.数组的指数与对数--------------------------- 195.数组或矩阵的单纯转置 ------------------------------------------ 20 3.3数组的关系与逻辑运算1.数组的关系运算------------------------------------------------ 20203 .与逻辑运算相关的函数 ----------------------------------------- 213.4数组和矩阵函数的通用形式------------------------------------------ 22四、字符串运算4.1字符串变量与一维字符数组1.给字符串变量赋值2.一维字符数组的生成------------------------- 22 4.2对字符串的多项操作1.求字符串长度 -------------------------------------------------- 232.字符串与一维数组数值的相互转换------------------------------- 233•比字^^串--------------------------------------------------------- 234•查找字符串5.显示字符串--------------------------------------- 244.3二维字符数组----------------------------------------------- 24五、习题部分1 .单项选择题------------------------------------------- 242 •判断题----------------------------------------------- 24六、实验二部分一、实验目的------------------------------------------------ 26二、实验内容------------------------------------------------ 26三、实验步骤------------------------------------------------ 263.1向量的生成和运算1)向量的生成直接输入法、冒号表达式法----------------------------------- 26函数法、练习题 -------------------------------------------- 272)向量的运算------------------------------------------------- 283.2矩阵的创建、引用和运算1)矩阵的创建和引用直接输入法、抽取法--------------------------------------- 29拼接法,函数法------------------------------------------- 30拼接函数和变形函数法、练习题----------------------------- 31 2)矩阵的运算矩阵的加减、数乘与乘法、求矩阵的逆矩阵------------------- 34矩阵的除法、练习题---------------------------------------- 353. 3多维数组的创建及运算1)多维数组的创建--------------------------------------------- 362)多维数组的运算--------------------------------------------- 37 练习题---------------------------------------------------- 383.4字符串的操作1)字符串的创建---------------------------------------------- 382)求字符串长度---------------------------------------------- 393)字符串与一维数值数组的相互转换------------------------- 39练习题--------------------------------------------------- 40相关知识点及练习结果一、向量运算1.直接输入法» A=[2,3,4,5,6],B=[1;2;3;4;5]/C=[4 5 6 7 8 9];A= 2 3 4 5 6 B= 123452.冒号表达式法» A=l:2:10,b=l:10/C=10:-l:lA= 1 3 5 7 9b= 1 2 3 4 5 6 7 8 9 10C= 10 9 8 7 6 5 4 3 2 13.函数法Linspace()是线性等分函数,logspace ()是对数等分函数» A=linspace(l,30/10),B=logspace(0/4/5)A = 1.0000 4.2222 7.4444 10.6667 13.8889 17.1111 20.333323.5556 26.7778 30.0000B= 1 10 100 1000 100002.1向量的加减和数乘运算只有维数相同的行向量之间可以相加减,维数相同的列向量也可以相加减,标量数值可以与向量直接相乘除。
机械控制工程matlab上机实验
实验一系统数学模型的(Matlab 应用)一、实验目的1.掌握系统数学模型的MATLAB 系统建模方法;2.学会系统串联、并联和反馈。
二、原理说明1、使用tf()函数建模传递函数可以表示成两个多项式的比值,在MATLAB 语言中,多项式可以用向量表示。
将多项式的系统按s 的降幂次序表示就可以得到一个数值向量,分别表示分子和分母多项式,再利用控制系统工具箱的tf()函数就可以用一个变量表示传递函数G(s):num=[b0,b1,…,bm];den=[a0,a1,…,an];G(s)=tf(num,den)考虑传递函数模型()23284112963s s G s s s s ++=+++,用下面的语句就可以将该数学模型输入到MATLAB 的工作空间。
程序编写如下:num=[841];%分子多项式den=[12963];%分母多项式G=tf(num,den)%获得系统的数学模型,并得出如下显示程序运行后的结果为G =8s^2+4s +1------------------------12s^3+9s^2+6s +3Continuous-time transfer function.2、零极点传递函数模型零极点增益模型是传递函数的另一种表达形式。
格式如下:()()()()()()()1212m n s z s z s z G s k s p s p s p ---=--- 在MATLAB 中,用如下语句表示G(s)=zpk(z,p,k)G(s)=zpk(z,p,k,'InputDelay',tao)%tao 为系统延迟时间其中:[][][]1212,,,,,,,,m n z z z z p p p p k k === 建立零极点传递函数()()()()()245()123s s G s s s s ++=+++,试编写程序。
程序编写如下:z=[-4,-5];p=[-1,-2,-3];k=2;G=zpk(z,p,k)程序运行后的结果为G =2(s+4)(s+5)-----------------(s+1)(s+2)(s+3)Continuous-time zero/pole/gain model.3、建立状态空间方程模型[]15310252,1036593x x u y x-⎡⎤⎡⎤⎢⎥⎢⎥=+=⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦程序编写如下:A=[1-53;025;65-9];B=[1;2;3];C=[103];D=0;G=ss(A,B,C,D)程序运行后的结果为G =A =x1x2x3x11-53x2025x365-9B =u1x11x22x33C =x1x2x3y1103D =u1y10Continuous-time state-space model.4、系统的串联、并联和反馈实际系统中,整个自动控制系统是由多个单一的模型组合而成的。
MATLAB上机实验实验报告
MATLAB上机实验一一、实验目的初步熟悉MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息; 命令窗口二、实验内容1 熟悉MATLAB 平台的工作环境;2 熟悉MATLAB 的5 个工作窗口;3 MATLAB 的优先搜索顺序;三、实验步骤1. 熟悉MATLAB 的5 个基本窗口①Command Window 命令窗口②Workspace 工作空间窗口③Command History 命令历史记录窗口④Current Directory 当前目录窗口⑤Help Window 帮助窗口1 命令窗口Command Window;在命令窗口中依次输入以下命令:>>x=1>> y=1 2 34 5 67 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace1,10,10;>> t1=ones3,t2=ones1,3,t3=ones3,1>> t4=ones3,t4=eye4x =1z1 =1 2 3 4 5 6 7 8 9 10t1 =1 1 11 1 11 1t2 =1 1 1t3 =111t4 =1 1 11 1 11 1 1t4 =1 0 0 00 1 0 00 0 1 00 0 0 1思考题:①变量如何声明,变量名须遵守什么规则、是否区分大小写;答:1变量声明1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用;当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在;脚本没有输入输出参数,由一系列MATLAB命令组成的M文件没有单独的工作空间,只能共享调用者的工作空间;当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中;2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量;例如声明a为全局变量:>>global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值;如果函数的子函数也要使用全局变量,也必须用global声明;3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取;当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:>>persistent a2变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符;N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名关键字在后面给出;避免使用函数名作为变量名;如果变量采用函数名,该函数失效;3区分大小写②试说明分号、逗号、冒号的用法;答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来;逗号:分割列表冒号:从什么到什么,比如1:10意思是——1到10③linspace 称为“线性等分”函数,说明它的用法;可使用help命令,格式如下:>>help linspace④说明函数ones 、zeros 、eye 的用法;答;1ones函数:全部元素都为1的常数矩阵; 2zeros函数:全部元素都为0的矩阵; 3eye函数:单位矩阵;4linspace函数:如a=linspacen1,n2,n3,表示在线性空间上,行矢量的值从n1到n22 工作空间窗口Workspace;单击工作空间窗口右上角的按钮,将其从MATLAB 主界面分离出来;①在工作空间查看各个变量,或在命令窗口用who, whos注意大小写查看各个变量;②在工作空间双击变量,弹出Array Editor 窗口数组编辑器窗口,即可修改变量;③使用save 命令把工作空间的全部变量保存为文件;>>save④输入下列命令:>>clear all %清除工作空间的所有变量观察工作空间的变量是否被清空;使用load 命令把刚才保存的变量载入工作空间;>>load⑤清除命令窗口命令:>>clc3 历史命令窗口Command History;打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法;①在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口;②在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行;③在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行;④或者在命令窗口使用方向键的上下键得到以前输入的命令;例如,按方向键“↑”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下;重复地按方向上键“↑”,就会在每次按下的时候调用再往前一次输入的命令;类似地,按方向键“↓”的时候,就往后调用一次输入的命令;按方向键“←”或者方向键“→”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令;4 当前目录命令窗口Current Directory;MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹;打开当前目录窗口后,可以看到用“save”命令所保存的文件是保存在目录C:\MATLAB6p5\work 下;5 帮助窗口Help Window;单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口;①通过Index 选项卡查找log2函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容;②也可以通过Search 选项卡查找log2 函数的用法;Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件;2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑Compact和松散Loose两种,其中Loose 为默认方式;>>a=ones1,30>>format compact>>a数字显示格式有short、long、short e、long e 等,请参照教材的列表练习一遍;>>format long>>pi>>format short>>pi>>format long>>pi>>format +>>pi>>-pi3. 变量的搜索顺序在命令窗口中输入以下指令:>>pi>>sinpi;>>exist'pi'>>pi=0;>>exist'pi'>>pi>>clear pi>>exist'pi'>>pi思考题:① 3 次执行exist'pi'的结果一样吗如果不一样,试解释为什么答:不一样,pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为②圆周率pi 是系统的默认常量,为什么会被改变为0答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为实验二 MATLAB语言基础一、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算区分数组运算和矩阵运算、常用的数学函数;交接字符串的操作;二、实验内容1 向量的生成和运算;2 矩阵的创建、引用和运算;3 多维数组的创建及运算;4 字符串的操作;三、实验步骤1.向量的生成和运算1 向量的生成直接输入法:A =2 3 4 5 6>> B=1;2;3;4;5B =12345冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1A =1 3 5 7 9B =1 2 3 4 5 6 7 8 9 10C =10 9 8 7 6 5 4 3 2 1函数法:Linspace 是线性等分函数,logspace 是对数等分函数;>> A=linspace1,10 ,B=linspace1,30,10A =Columns 1 through 9Columns 10 through 18Columns 19 through 27Columns 28 through 36Columns 37 through 45Columns 46 through 54Columns 55 through 63Columns 64 through 72Columns 73 through 81Columns 82 through 90Columns 91 through 99Column 100B =Columns 1 through 9Column 10>> A=logspace0,4,5A =1 10 100 1000 10000练习:使用logspace 创建1-4 的有10个元素的行向量;答案:>> A=logspace1,10,4piA =+010Columns 1 through 9Columns 10 through 122 向量的运算维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除;>> A=1 2 3 4 5, B=3:7,A =1 2 3 4 5B =3 4 5 6 7>> AT=A', BT=B',AT =12345BT =34567>> E1=A+B, E2=A-BE1 =4 6 8 10 12E2 =-2 -2 -2 -2 -2 >> F=AT-BT,F =-2-2-2-2-2>> G1=3A, G2=B/3,G1 =3 6 9 12 15G2 =向量的点积与叉积运算;>> A=ones1,10;B=1:10; BT=B';>> E1=dotA,BE1 =55>> E2=ABTE2 =55>> clear>> A=1:3,B=3:5,A =1 2 3B =3 4 5>> E=crossA,BE =-2 4 -22.矩阵的创建、引用和运算1 矩阵的创建和引用矩阵是由nm 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式;直接输入法:>> A=1 2 3;4 5 6A =1 2 3 4 5 6 >> B= 1 4 72 5 83 6 9B =1 4 72 5 83 6 9 >> A1ans =1>> A4:endans =5 36 >> B:,1ans =123>> B:ans =123456789>> B5ans =5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A =1 2 3 45 6 7 89 10 11 1213 14 15 16>> B=A1:3,2:3B =2 36 710 11>> C=A1 3,2 4C =2 410 12>> A1 3;2 4ans =1 95 13函数法:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zero3Undefined function or method 'zero' for input arguments of type 'double'. >> B=zeros3B =0 0 00 0 00 0 0>> C=eyes3,2Undefined function or method 'eyes' for input arguments of type 'double'. >> C=eye3,2C =1 00 10 0>> D=magic3D =8 1 63 5 74 9 2拼接法>> clear>> A=ones3,4A =1 1 1 11 1 1 1>> B=zeros3B =0 0 00 0 00 0 0>> C=eye4C =1 0 0 00 1 0 00 0 1 00 0 0 1>> D=A BD =1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> F=A;CF =1 1 1 11 1 1 11 1 1 10 1 0 0 0 0 1 0 0 0 0 1 拼接函数和变形函数法:>> clear>> A=0 1;1 1A =0 11 1>> B=2ones2B =2 22 2>> cat 1,A,B,Aans =0 11 12 22 20 11 1>> cat 2 A,B,Acat 2 A,B,AError: Unexpected MATLAB expression.>> cat2,A,B,Aans =0 1 2 2 0 11 12 2 1 1>> repmatA,2,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1>> repmatA,2ans =0 1 0 11 1 1 10 1 0 11 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:A为43⨯的3⨯的单位矩阵、D为33⨯的0矩阵/C为33⨯的全1矩阵、B为3魔方阵、E由C 和D纵向拼接而成,F抽取E的2---5行元素生成、G由F经变形为46⨯的大3⨯的矩阵而得、以G为子矩阵用复制函数repmat生成8矩阵H;答案:>> A=ones3,4A =1 1 1 11 1 1 11 1 1 1>> B=zeros3,3B =0 0 00 0 00 0 0>> C=eye3C =1 0 00 1 00 0 1>> D=magic3D =8 1 63 5 74 9 2>> E=C;DE =1 0 00 1 00 0 18 1 63 5 74 9 2>> F=2:5,:F=2:5,:Error: Expression or statement is incorrect--possibly unbalanced , {, or . >> F=E2:5,:F =0 1 00 0 18 1 63 5 7>> G=respaceE,3,4Undefined command/function 'respace'.>> G=respaceF,3,4Undefined command/function 'respace'.>> G=reshapeF,3,4G =0 3 1 10 1 5 68 0 0 7>> H=repmatG,2,2H =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 7 2)矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>> A=1 23 -1,A =1 23 -1>> B=-1 01 2B =-1 01 2>> A+Bans =0 24 1>> 2Aans =2 46 -2>> 2A-3Bans =5 43 -8>> ABans =1 4-4 -2矩阵的逆矩阵>> format rat;A=1 0 1;2 1 2;0 4 61 0 12 1 2 0 4 6 >> A1=invAA1 =-1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> AA1ans =1 0 0 0 1 0 0 0 1 矩阵的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a =1 2 1 3 1 42 2 1b =1 1 2112>> c1=binva,c2=b/ac1 =6/7 3/7 -4/7 c2 =6/7 3/7 -4/7 >> c3=invad, c4=a\bc3 =12/7-4/7Error using ==> mldivideMatrix dimensions must agree.>> c3=invad, c4=a\dc3 =12/7-4/7c4 =12/7-4/7练习:按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:>> A=6 3 4 3-2 5 7 -48 -1 -3 -7A =6 3 4 3-2 5 7 -48 -1 -3 -7>> B=rankAB =3>> rb=rankArb =3>> X,Lamda=eigAError using ==> eigMatrix must be square.>> X,Lamda=eigsAError using ==> eigsA must be a square matrix or a function which computes Ax. >> C=6 3 4-2 5 78 -1 -3C =6 3 4-2 5 78 -1 -3>> X,Lamda=eigsCX =Lamda =0 00 00 0>> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> X,Lamda=eigCX =Lamda =0 0 0 0 0 0 >> D=A^2Error using ==> mpower Matrix must be square. >> D=C^2D =34 12 626 22 34>> E=sqrtmCE =+ - -+ - -- + +>> F=expmCF =+004>> G=logmCWarning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned.> In funm at 153In logm at 27G =+ - -- + + >> H=fliplrCH =4 3 6 75 -2 -3 -1 8 >> I=triuCI =6 3 4 0 57 0 0 -3 >> J=trilCJ =6 0 0 -2 5 0 8 -1 -3 >> K=diagCK =65-33.多维数组的创建及运算1)多维数组的创建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape10:18,3,3 A2 =10 13 1611 14 1712 15 18>> T1:,:,1=ones3;T1:,:,2=zeros3T1:,:,1 =1 1 11 1 11 1 1T1:,:,2 =0 0 00 0 00 0 0>> T2=ones3,3,2T2:,:,1 =1 1 11 1 11 1 1T2:,:,2 =1 1 11 1 11 1 1>> T3=cat3,A1,A2,T4=repmatA1,1,1,2T3:,:,1 =1 2 34 5 67 8 9T3:,:,2 =10 13 1611 14 1712 15 18T4:,:,1 =1 2 34 5 67 8 9T4:,:,2 =1 2 34 5 67 8 92)多维数组的创建数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算;特点是两个数组相对应的元素进行运算;>> A=1:6;B=ones1,6;>> C1=A+B,C2=A-BC1 =2 3 4 5 6 7C2 =0 1 2 3 4 5 >> C3=A.B,C4=B./A,C5=A.\BC3 =1 2 3 4 5 6C4 =C5 =关系运算或逻辑运算的结果都是逻辑值;>> I=A>3,C6=AII =0 0 0 1 1 1C6 =4 5 6>> A1=A-3,I2=A1&AA1 =-2 -1 0 1 2 3 I2 =1 1 0 1 1 1>> I3=~II3 =1 1 1 0 0 0 4.字符串的操作1 字符串的创建>> S1='Ilike MATLAB'S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a MATLAB2)求字符串长度>> lengthS1ans =12>> sizeS1ans =1 123)字符串与一维数值数组的相互转换>> CS1=absS1CS1 =73 108 105 107 101 32 77 65 84 76 65 66>> CS2=doubleS1CS2 =73 108 105 107 101 32 77 65 84 76 65 66>> charCS2ans =Ilike MATLAB>> setstrCS2ans =Ilike MATLAB练习:用char 和向量生成的方法创建如下字符串AaBbCc......XxYyZz.>> S1=65:90;S2=97:122;>> C=S1;S2;>> C=C:';>> S3=doubleC;charS3ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvWwXxYyZz实验三 MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作;二、实验内容1)多项式运算;2)多项式插值和拟合;3)数值为积分;4)结构数组和细胞数组;三、实验步骤1、多项式运算1)多项式表示;在MATLAB中,多项式表示成向量的形式;如:432S S S+-+在MATLAB中表示为359>> s=1 3 -5 0 92)多项式的加减法相当于向量的加减法,但必须注意阶次要相同;如不同,低阶次的要补0;如多项式23547+-++相加;s s s s++与多项式432239s s>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s2答;s1 =0 0 2 3 11s2 =1 2 -5 4 7s3 =1 2 -3 7 183)多项式的乘、除法分别用函数conv和的deconv实现; >> s1=2 3 11>> s2=1 3 -5 4 7>> s3=convs1,s2>> s4=deconvs3,s1答;s1 =2 3 11s2 =1 3 -5 4 7s3 =2 9 10 26 -29 65 77s4 =1 3 -5 4 74)多项式求根用函数roots;>> s1=2 4 2>> rootss1答;s1 =2 4 2ans =-1-15)多项式求值用函数polyval>> s1=2 4 1 -3>> polyvals1,3>> x=1:10>> y=polyvals1,x答;s1 =2 4 1 -3ans =90x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 84 31 90 193 352 579 886 1285 Columns 9 through 10练习:求23(1)(3)(1)21s s ss s+++++的“商”及余数;>> s1=1 0 1;s2=1 3;s3=1 1;>> s4=1 0 2 1;>> q,r=deconvconvconvs1,s2,s3,s4答;q =1 4r =0 0 2 -5 -12、多项式插值和拟合有一组实验数据如附表1-1所示;附表1-1分别用拟合二阶至三阶和插值线性和三次样条的方法来估算X=时Y的值;以下是实现一阶拟合的语句;>> x=1:10>> y=16 32 70 142 260 436 682 1010 1342 1960>> p1=polyfitx,y,1 %一阶拟合>> y1=polyvalp1, %计算多项式P1在x=的值答;x =1 2 3 4 5 6 7 8 9 10y =Columns 1 through 816 32 70 142 260 436 682 1010Columns 9 through 101342 1960p1 =y1 =+0033、数值微积分1)差分使用diff函数实现;>> x=1:2:9>> diffx答;x =1 3 5 7 9ans =2 2 2 22)可以用因变量和自变量差分的结果相处得到数值微分;>> x=linspace0,2pi,100;>> y=sinx;>> plotx,y>> y1=diffy./diffx;>> plotx1:end-1,y1答;3)cumsum函数求累计积分,trapz函数用梯形法求定积分,即曲线的面积;>> x=ones1,10>> cumsumx>> x=linspace0,pi,100;>> y=sinx;>> trapzx,y>> p=cumsumy;>> p100pi/100-1答;x =1 1 1 1 1 1 1 1 1 1ans =1 2 3 4 5 6 7 8 9 10ans =ans =练习:图A1是瑞士地图,为了算出其国土面积,首先对地图作如下测量:以由西向东方向为X轴,由南向北方向为Y 轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,这样就得到表1,根据地图比例尺回到18mm相当于40Km,试由测量数据计算瑞士国km比较;地图的数据见附表1-2单位mm;土近似面积,与其精确值412282附表1-2X 7 13 34 48 56 61 91Y1 44 45 47 50 50 38 30 30 34 36 34 41 45 46续表提示:由高等数学的知识,一条曲线的定积分是它与x轴所围成的面积,那么两条曲线所围成的面积可由两条曲线的定积分相减得到;4、结构数组与细胞数组1)机构数组的创建;>> ='Jack';>> student2.n>> ='Lucy';>> student或者用struct函数创建;>> student=struct'number',{'001','002'},'name',{'Jack','Lucy'};答;student =1x2 struct array with fields:numbername2)机构数组的操作;>> student1.subject= %添加subject域并赋予空值>> student1.score=>> filednamesstudeng>>fieldnamesstudeng>>fieldnamesstudent>> getfieldstudent,{2},'name'>> student=rmfieldstudent,'subject' %删除subject域>> student=setfieldstudent,{1},'score',90;>> student2.score=88; %比较和上一条语句是否效果一样答;student =1x2 struct array with fields:numbernamesubjectstudent =1x2 struct array with fields:numbernamesubjectscoreUndefined function or variable 'studeng'.练习:创建一结构数组stusorce,其域为:No,Name,English,Math,Chinese,Total,Average;结构数组的大小为2×2;3)细胞数组的创建;>> A={'How are you',ones3;1 2;3 4,{'cell'}}; %直接创建>> B1,1={'Hello world'}; %由各个细胞元素创建>> B1,2={magic3};>> B2,1={1 2 3 4};答或者用cell函数先创建空的细胞数组,然后再给各个元素赋值c=cell1,2;>> c1,1={'Hello world'};>> c1,2={magic3};>> c1,3={1 2 3 4};4)细胞数组的操作;>> ans1=A1,1>> ans2=A1,1>> whos ans1 ans2>> celldispA>> a1=A{2,1}1,2>> a2 a3=dealA{1:2}答;ans1 ='How are you'ans2 ='How are you'Name Size Bytes Class Attributesans1 1x1 84 cellans2 1x1 84 cellA{1,1} =How are youA{2,1} =1 23 4A{1,2} =1 1 11 1 11 1 1A{2,2}{1} =cella1 =2a2 =How are youa3 =1 23 4实验四 MALTAB符号运算一、实验目的掌握符号变量和符号表达式的创建,掌握MALTAB的symbol工具箱的一些基本运用;二、实验内容1)符号变量、表达式、方程及函数的表示; 2)符号微积分运算;3)符号表达式的操作和转换;4)符号微分方程求解;三、实验步骤1、符号运算的引入在数值运算中如果求x xxπsinlim→,则可以不断让的让x趋近0,一球的表达式趋近什么数,但终究不能令x=0,因为在数值运算中0不是能作除数的;MATLAB的符号运算能解决这内问题;输入如下命令:>> f=sym'sinpix/x'>> limitf,'x',0答;f =sinpix/xans =pi2、符号常量、符号变量、符号表达式的创建1)使用sym创建输入以下命令,观察Workspace中A、B、f是什么内性的数据,占用多少字节的内存空间;>> A=sym'1' %符号常量>> B=sym'x' %符号变量>> f=sym'2x^2+3x-1' %符号表达式>> clear>> f1=sym'1+2' %有单引号,表示字符串>> f2=sym1+2 %无单引号>> f2=sym1+2>> f4=sym'2x+3' %为什么出错>> x=1>> f4=sym2x+3答;A =1B =x2x^2+3x-1f1 =1+2f2 =3f2 =3f4 =2x+3x =1f4 =5通过看MATLAB的帮助可知,sym的参数可以使字符串或是数值类型,无论是哪种类型都会生成符号类型数据; 2)使用syms创建>> clear>> syms x y z>> x,y,z>> f1=x^2+2x+1>> f2=expy+expz^2>> f3=f1+f2答;x =xy =yz =zf1 =x^2+2x+1f2 =expy+expz^2f3 =x^2+2x+1+expy+expz^23、符号矩阵创建>> syms a1 a2 a3 a4>> A=a1 a2;a3 a4>> A1,A3答;A =a1, a2a3, a4ans =a1a24、符号算术运算1)符号向量相乘、相除符号量相成和数值量相乘一样,分成矩阵乘和数组乘;>> a=sym5;b=sym7;>> c1=ab>> c2=a/b>> a=sym5;B=sym3 4 5;>> C1=aB,C2=a\B>> syms a b>> A=5 a;b 3;B=2a b;2b a;>> C1=AB,C2=A.B>> C3=A\B,C4=A./B答;c1 =35c2 =5/7C1 =15, 20, 25C2 =3/5, 4/5, 1C1 =10a+2ab, 5b+a^22ab+6b, b^2+3aC2 =10a, ab2b^2, 3aC3 =2ab-3/-15+ab, a^2-3b/-15+ab2ba-5/-15+ab, -5a-b^2/-15+abC4 =5/2/a, a/b1/2, 3/a2)符号数值任意精度控制和运算任意精度的VPA运算可以使用命令digits设定默认的精度和vpa对指定对象以新的精度进行计算来实现; >> a1=sym'2sqrt5+pi'>> a=sym'2sqrt5+pi'>> b=sym2sqrt5+pi>> digits>> vpaa>> digits15>> c1=vpaa,56>> c2=vpab,56答a1 =2sqrt5+pia =2sqrt5+pib =Digits = 32ans =ans =c1 =c2 =注意观察c1和c2的数值类型,c1和c2是否相等;3) 符号类型与数值类型的转换使用命令sym 可以把数值型对象转换成有理数性符号对象,命令vpa 可以讲数值型对象转换为任意精度的VPA 型符号对象;使用double,numeric 函数可以将有理数型和VPA 型符号对象转换成数值对象.>> clear>> a1=sym'2sqrt5+pi'>> b1=doublea1 %符号转数值>> b2=isnumericb1 %判断是否转换成了数值>> a2=vpaa1,70 %数值转符号答;a1 =2sqrt5+pib1 =b2 =1a2 =85、 符号表达式的操作和转换1独立变量的确定原则独立变量的确定原则:在符号表达式中默认变量是惟一的;MATLAB 会对单个英文小写字母除i 、j 外进行搜索,且以x 为首选独立变量;如果表达式中字母不唯一,且无x,就选在字母表最接近x 的字母;如果有相连的字母,则选择在字母表中较后的那一个;例如:'*3'z y +中,y 是默认独立变量;)'*sin('b t a +,t 是默认独立变量;输入以下命令,观察并分析结果;>> clear>> f=sym'a+b+i+j+x+y+xz'>> findsymf>> findsymf,1>> findsymf,2>> findsymf,3>> findsymf,4>> findsymf,5>> findsymf,6答;f =a+b+i+j+x+y+xzans =a, b, j, x, xz, yans =xans =x,xzans =x,xz,yans =x,xz,y,jans =x,xz,y,j,bans =x,xz,y,j,b,a2符号表达式的化简符号表达式化简主要包括表达式美化pretty 、合并同类项collcet 、多项式展开expand 、因式分解factor 、化简simple 或simplify 等函数;①合并同类项collect;分别按x 的同幂项和e 指数同幂项合并表达式: 2(1)()t t x xe x e --+++;>> syms x t;>> f=x^2+x^exp-t+1x+exp-t;>> f1=collectf>> f2=collectf,'exp-t'答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x②对显示格式加以美化pretty;针对上例,用格式美化函数可以使显示的格式更符合数学书写习惯;>> prettyf1>> prettyf2答;f1 =x^3+exp-tx^2+x^exp-t+1x+x^exp-t+1exp-tf2 =x^2+x^exp-t+1exp-t+x^2+x^exp-t+1x>> prettyf1prettyf23 2 exp-t exp-tx + exp-t x + x + 1 x + x + 1 exp-t2 exp-t 2 exp-tx + x + 1 exp-t + x + x + 1 x注意与直接输出的f1和f2对比;③多项式展开expand;展开12x-成x不同次幂的多项式.(1)>> syms x>> f=x-1^12;>> expandf>> prettyexpandf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x④因式分解factor;将表达式121x-做因式分解;>> syms x;f=x^12-1;>> prettyfactorf答;ans =1+x^12-12x^11+66x^10-220x^9+495x^8-792x^7+924x^6-792x^5+495x^4-220x^3+66x^2-12x 12 11 10 9 8 7 6 51 + x - 12 x + 66 x - 220 x + 495 x - 792 x + 924 x - 792 x4 3 2+ 495 x - 220 x + 66 x - 12 x>> syms x;f=x^12-1;prettyfactorf2 2 2 4 2x - 1 1 + x + x 1 + x 1 - x + x 1 + x x - x + 1⑤化简simple或simplify;将函数f=;>> clear>> syms x;f=1/x^3+6/x^2+12/x+8^1/3;>> g1=simplef>> g2=simplifyf答;g1 =2x+1/xg2 =2x+1^3/x^3^1/36、符号表达式的变量替换subs函数可以对符号表达式中的符号变量进行替换>> clear>> f=sym'x+y^2+4x+10'>> f1=subsf,'x','s' %使用s替换x>> f2=subsf,'x+y','z'答;f =x+y^2+4x+10f1 =s+y^2+4s+10f2 =z^2+4x+107、符号极限、符号积分与微分1)求极限函数的调用格式limitF,x,a %返回符号对象F当x→a时的极限limitF,a %返回符号对象F当独立变量→a时的极限limitF %返回符号对象F当独立变量→0a=0时的极限limitF,x,a,’right’ %返回符号对象F当x→a时的右极限limitF,x,a,’left’ %返回符号对象F当x→a时的左极限例一:>> clear>> f=sym'sinx/x+ax'>> limitf,'x',0 %以x为自变量求极限>> limitf,'a',0 %以a为自变量求极限>> limitf %在默认情况下以x为自变量求极限>> findsymf %得到变量并且按字母表顺序排列答‘f =sinx/x+axans =1ans =sinx/xans =1ans =a, x例二:>> clear>> f=sym'sqrt1+1/n;>> limitf,n,inf %求n趋于无穷大时的极限2)求积分函数的调用格式intF %求符号对象F关于默认变量的不定积分intF,v %求符号对象F关于指定变量v的不定积分intF,a,b %求符号对象F关于默认变量的从a到b的定积分intF,v,a,b %求符号对象F关于指定变量的从a到b的定积分3)求微分方程的调用格式diffF %求符号对象F关于默认变量的微分diffF,v %求符号对象F关于指定变量v的微分diffF,n %求符号对象F关于默认变量的n阶微分,n为自然数1、2、3……diffF,v,n %求符号对象F关于指定变量v的n阶微分8、符号方程求解1常规方程求解函数的调用格式g=solveeq %求方程或表达式或字串eq关于默认变量的解g=solveeq,var %求方程或表达式或字串eq关于指定变量var的解g=solveeq1,eq2,….,eqn,var1,var2,…,varn %求方程或表达式或字串eq1,eq2,eq3,……eqn关于指定变量组var1,var2,……,varn的解求一元二次方程20++=的解;其求解方法有多种形式:ax bx c①seq=solve'ax^2+bx+c'②seq=solve'ax^2+bx+c=0'③eq=’ax^2+bx+c’;④eq=’ax^2+bx+c=0’;seq=solveeq⑤sym x a b ceq=ax^2+bx+cseq=solveeq2常微分方程求解求解常微分方程的函数是dsolve;应用此函数可以求得常微分方程组的通解,以及给定边界条件或初始条件后的特解;常微分方程求解函数的调用格式:r=dsolve’eq1,eq2,…’,’cond1,cond2,…’,’v’r=dsolve’eq1’,’eq2’,…,’cond1’,’cond2’,…,’v’说明:①以上两式均可给出方程eq1,、qeq2对应初始条件cond1、cond2之下的一v 作为解变量的各微分方程的解; ②常微分方程解的默认变量为t;③第二式中最多可接受的输入式是12个;④微分方程的表达方法;在用MATLAB 求解常微分方程时,用大写字母Dy 表示dxdy ,用D2y 表示22d y dx ,依此类推; 边界条件以类似于ya=b 给出;其中y 为因变量,a 、b 为常数.如果初始条件给的不够,求出的解为含有C1、C2等待定常数的通解;例一 求微分方程x dx dy 2=的通解. 练习:1求222132lim x x x x →--+; 2求函数()cos 2sin 2f x x x =-的积分;求函数()g x =3计算定积分60(sin 2)x dx π+⎰ 4求下列线性方程组的解5求解但y0=2,在z0=7时,微分方程组的解;实验五 MATLAB 程序设计一、实验目的掌握MATLAB 程序设计的主要方法,熟练编写MATLAB 函数.二、 实验内容1M 文件的编辑;。
MATLAB上机实验实验报告
MATLAB上机实验实验报告实验名称:用MATLAB实现多项式拟合及插值一、实验目的:通过使用MATLAB实现多项式拟合及插值的方法,掌握MATLAB软件的基本操作和函数应用,进一步了解多项式拟合及插值的原理和实现过程。
二、实验原理:多项式拟合及插值是一种常见的数值分析方法,通过对已知数据点集合的拟合或插值,构造出一个多项式函数,用于近似表示原始数据。
1.多项式拟合:通过最小二乘法原理,选择一个合适的多项式函数,使得拟合出的多项式与已知数据点之间的误差最小。
拟合函数可以是一次、二次或高阶多项式。
2.多项式插值:通过已知数据点的横纵坐标值,构造一个满足这些点的多项式函数。
插值函数可以是一次、二次或高阶多项式。
插值函数经过每个已知数据点。
三、实验步骤:1.数据准备:选择一组已知数据,包含横纵坐标值。
数据点的个数可以根据具体情况自行确定。
2.多项式拟合:使用MATLAB中的polyfit函数,根据已知数据点进行多项式拟合。
根据拟合结果,获取拟合的多项式系数。
3.多项式插值:使用MATLAB中的polyfit函数,根据已知数据点进行多项式插值。
通过plot函数绘制原始数据点的散点图和插值多项式的曲线图。
可以尝试不同阶数的多项式插值。
4.结果分析:根据实验结果,分析拟合与插值的效果。
对比拟合结果与原始数据的误差大小,评估拟合的准确性。
对比插值结果与原始数据的差异,评估插值的精确度。
五、实验总结:通过这次实验,我熟练掌握了使用MATLAB实现多项式拟合及插值的方法。
在实验中,我了解了多项式拟合的原理,以及如何利用最小二乘法求取多项式拟合的系数。
同时,我也学会了如何使用MATLAB中的polyfit函数实现多项式拟合和插值。
通过实验结果的分析,我对拟合和插值的实际应用和效果有了更加深入的认识。
[1]MATLAB官方文档[2]高等数值分析教程以上为MATLAB上机实验实验报告,共计1200字。
matlab上机实验报告if,swich语句
实验报告实验主题:在MATLAB中使用if,switch语句实验内容:1. 实验目的本次实验旨在让学生通过在MATLAB中使用if和switch语句,加深对条件语句的理解,并能够灵活运用条件控制语句解决实际问题。
2. 实验环境本次实验使用MATLAB软件进行,MATLAB是一款专业的科学计算软件,广泛应用于工程、数学、金融和其他领域。
在MATLAB中,if 语句用于执行条件控制语句,而switch语句则用于多个条件判断。
3. 实验步骤3.1 编写if语句在MATLAB中编写一个简单的if语句,用于判断一个数值的大小,然后输出对应的结果。
例如:```matlabnum = 10;if num > 0disp('num是正数');elseif num < 0disp('num是负数');elsedisp('num是零');end```以上代码使用了if、elseif和else关键字,根据num的大小输出不同的结果。
3.2 编写switch语句接下来,我们在MATLAB中编写一个switch语句,根据不同的条件执行不同的操作。
例如:```matlabday = 'Monday';switch daycase 'Monday'disp('今天是星期一');case 'Tuesday'disp('今天是星期二');case 'Wednesday'disp('今天是星期三');otherwisedisp('今天是其他日子');end```以上代码根据day的取值输出不同的结果,使用了switch和case关键字。
4. 实验结果通过以上步骤,我们成功在MATLAB中使用了if和switch语句,并实现了条件判断和相应的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 上机实验
一、 实验目的
1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数;
2、 熟悉并掌握图像输入、输出及其常用处理的函数。
二、 实验内容
1 绘制函数的网格图和等高线图。
42
2cos cos y x ye x z +-=
其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。
2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色
处理。
⎪⎩⎪⎨⎧===s z t s y t s x sin sin cos cos cos
230,20ππ≤≤≤≤t s 3 已知
⎪⎪⎩⎪⎪⎨⎧>++≤+=0),1ln(210,22x x x x e x y π
在-5<=x<=5区间绘制函数曲线。
4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作:
a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例;
b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=
y1*y2”。
5 在xy 平面内选择区域[][],,-⨯-8888
,绘制函数
z =的三
种三维曲面图。
6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”.
7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为
[-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签
8 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成)
9 2
2y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口
的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图
10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。
11 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。
12 以自己的个人画像或照片(JPG)为对象,读入该图像并了解图像的信息,同时利用所学函数对其进行灰度、二值、旋转及缩放等处理,并以PNG 形式输出。