




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB速成Matlab软件是美国matheworks公司的软件产品。该软件主要用于数学计算,软件仿真,是计算、仿真领域中的辅助工具。涉及的领域包括常规数学计算,力学,热学,财政分析,空间分析,概率工具箱,自动控制、图像处理、通信、数字信号处理等各个领域。信息、电子、通信专业的学生应该较好的掌握该工具的使用,为信号与系统、数字信号处理、通信系统处理、语音信号处理,图像处理等打好基础。Matlab能够对很多理论分析提供计算、图形、仿真方面的支持,在很多论文专著中都以Matlab作分析,是很好的实验辅助工具。现在Matlab已经发展到支持某些型号的DSP和FPGA,可以在Matlab的simulink下按照需要搭建自己的模型,比如某种形式的滤波器,仿真结果满足指标后,选择目标平台编译成目标DSP/FPGA可用的代码。可见Matlab在电子信息处理方面功能也在增强。Matlab不只是一个数学计算工具,它对电系统,信号处理的支持我们马上就能看到!Matlab核心是矩阵计算,其名是Maritx和library的简写合成,意思就是”矩阵实验室”,特别强调矩阵方式计算。例1:,我们可以利用C语言中for循环实现(在matlab中也可以用for循环实现),在Matlab中比较推崇的写法:n=10;a=1:n; %从1开始,生成1行n列的向量,元素分别是1 2 3 410f=a*a; %a是a的转置矩阵,变成10行一列的元素,1行10列矩阵乘以%10行一列矩阵结果是1*1的矩阵,别忘了还有矩阵乘后还有加的%过程,这里刚好利用这个加,实现和的累加。% 小问题:实际的计算耗时比for循环结构是否少一些?例2:以上三元一次方程组在我们学过的线性代数中通过消元法或直接通过系数矩阵求逆,是可以手工求解的,但手工对4阶或更高的方程求解显得困难。在matlab中只需要输入a=1 2 1;4 5 7; 6 -1 2;%注意数之间用空格分隔,行之间用;分开b=3 5 -1; %b转置成3行一列的列向量x=ab马上就可以得到关于x的向量,向量中有三个元素,就分别对应x1,x2,x3的解。例3:t=0:pi/10:2*pi;y=sin(t);subplot(1,2,1)plot(t,y);subplot(1,2,2)stem(y);效果右图是数字信号处理中常用的离散信号,左边一幅图实际上也是离散的,注意观察t的取值,只不过t比较小的时候,plot函数将附近的点用直线连起来而已。Matlab大部分情况下都用离散来处理连续问题,因为离散点之间比较近,所以效果上和连续的差不多。如果追求计算结果每一点都精确可靠,处理冲激函数、阶跃函数等不连续情况,可以使用Matlab符号计算功能!例4:以下程序进行幅频响应的绘制:(1)(2) (3) w=0:0.1:20;h1=5./sqrt(w.4-6*w.2+25);plot(w,h1);figure(2)w1=0:0.1:20;h2=2*w./sqrt(w.4-6*w.2+25);plot(w,h2)figure(3)h3=(w.2)./sqrt(w.4-6*w.2+25);plot(w,h3)以下是其运行结果 (1) (2) (3)例5:以下是直方图均衡化的例子:pic=imread(pout.tif);%打开一幅图像,pout.tif是matlab自带供测试用图像imshow(pic); %显示图像,afigure(2),imhist(pic); %显示直方图 bI2=histeq(pic); %直方图均衡化 figure (3),imshow(I2); %显示均衡后结果 cfigure(4), imhist(I2); %显示均衡后直方图 d a b c d下面我们打开软件,认识一下操作界面开启M编辑器Help帮助按钮找到图标,双击打开matlab.也可以在开始程序matlab6.5下找到可执行快捷方式。界面如下:当前目录Workspace浏览器历史命令窗口命令窗口命令窗口:命令可在这里输入,结果可以在回车之后马上显示,可以输入简单表达式入1/2+3,也可以输入exm070102脚本文件执行(前提是在搜索路径上要能找到exm070102.m文件),也可以输入b=max(a)等函数调用语句,函数执行结果返回给b.还可以输入管理控制指令,如 clc:清除命令输入窗的指令和结果, clear:清除workspace中的所有变量,可以选择性清除,如clear a b xalpha等 whos:输出当前工作区中所有变量的类型,占用字节数等 format long:长型显示,输出16位数 dir:显示当前目录 help cos:查找cos函数的进一步解释 simulink:启动simulink模块库浏览器常用的命令是clc,clear,help历史命令窗口:在命令窗口中输入的指令都会记录在历史命令窗中,可从历史命令窗中取出一条或多条(连续不连续)指令执行,这样可以对以前的工作选择重做,观察不同效果。关闭matlab后,历史命令窗内容消失,即不能下次启动matlab后执行上次开启后的输入,可以通过菜单Editclear Command History清除命令历史窗口。Workspace窗口:所有在指令窗或脚本文件中执行后的变量都会聚集在这个窗口中,相当于软件提供的一种变量环境,以后的指令,脚本,函数都可以直接使用这些变量,执行的结果也放在workspace中。这和C语言是很不相同的,C语言作类似功能的大约是全局变量,但全局变量也只能在一个程序中有效,workspace中的变量对所有命令行输入的指令脚本函数都有效。可以用clear指令清除workspace中变量。当前目录:matlab从哪个路径开始搜索解释输入的字符串,如输入exm070103,则先从当前workspace开始查找起,是否有变量名叫exm070103,如果有,则取出显示或计算,如果没有,查找当前目录是否有exm070103.m或exm070103.mat文件,有则取出执行,如果没有,则在系统指定的搜索路径上继续查找是否有exm070103的脚本文件或函数来执行,找到了则执行,最终没找到的情况下则报错!所以,搜索路径很重要,通过菜单fileset path设定,界面如下:从左边可以看到move to top,move Down等,就是设定搜索优先权,所以如果有两个脚本文件同名,但是放在不同目录下,那么总是搜索优先权高的先执行。Help:点击后出现帮助窗口,可以像其它软件那样查找帮助。在开始应用matlab之前,有几条规则需要记住:1.matlab中不需要自己定义数据类型,C语言中用int a;float b;等变量定义在matlab中直接写成a=10,b=3.5,在内存中,它们都以8个字节形式保存,变量不需要(也不能)先申明后使用,想用时直接使用即可,当然象下面的语句clc;clear;a=10;b=c;d=sin(b);由于c没有赋值,matlab在运行时会报错。2.matlab严格区分大小写,a 和A是两个不同的变量。变量、脚本、函数文件取名时不允许数字开头。正确的方式是字母打头,可以有下划线,后面接数字或字母。系统提供一些预定义好的变量供使用,如i,j(虚数单位),pi(圆周率),eps(机器零阀值,看作可实现无穷小),inf(无穷大). 预定义变量可以被修改,如i=3,但是下次启动matlab式i还是恢复到预定义变量上。建议最好不要改变预定义变量定义,for 循环中不要使用i,j作循环变量.3.Matlab风格类似脚本语言,同学们在C语言时#include”stdio.h”之类的语句不再需要,整个程序从脚本文件开始执行,没有main( )函数一说。执行过程中可以调用函数,每个函数存成一个文件,只要把函数文件放在搜索路径上,Matlab就能自动找到并进入函数执行,然后退出到调用程序继续执行,如果没有断点,暂停等控制语句的话,程序一直执行到结束。在C我们处处要设置头文件,全局变量/局部变量,需要做很多工作,而在Matlab中一切很简单.这是因为c编出的程序是.exe文件,可以不再要turbo C 或Visual C+来执行的,可以完成从驱动程序到桌面应用程序的各种开发。Matlab程序需要在matlab软件中执行,是不能脱离大环境的。4matlab执行方式分2种,一种是在命令行界面下输入程序执行。在光标位置输入指令,调用函数,脚本文件名等都可以执行程序,对于特别简单的计算都可以在这里执行。缺点是输入一行就会执行一行,如果有for循环之类的换行语句,不得不加上续行符,书写麻烦;执行结果会在这里显示,结果命令窗口内容很多;如果自己的程序很长,用拷贝粘贴方法可以从别处一次粘贴多条语句来执行,如果想改动部分语句,观察效果,就需要大量的粘贴操作,使得界面混乱;关闭matlab后所有输入内容丢失,保存麻烦。 另外一种,在上图有开启M文件编辑器的快捷工具栏。点击后出现m文件编辑界面,可以在该编辑器中输入指令,然后保存文件,点击debugrun 菜单项执行脚本,执行结果也到了workspace和命令行输入中,这种方式和命令行方式唯一的区别是脚本内容不到command history window中,想象这是不是也有其合理性? 上面图片中还有设断点指令,由此可以方便的帮助调试程序。5.变量定义方式: A=1 %定义一个变量A,直接赋值1 a=1 2 3 %定义一个矩阵,1*3,矩阵定义要 a=1 2 3;4 5 6 %定义二维矩阵,3维或更高维矩阵可定义,但用的较少 a=1:3;4:6 %1:3意思是从1开始,步长为1,到达3,生成3个元素的行%向量,同时作为2行3列矩阵的第一行 a=0:0.01:2*pi %从0开始,以0.01开始,到达2*pi.pi,i,j是Matlab中定义好%的变量,可以直接使用,i,j是虚数单位 a=3:-0.34:2 %可以采用负向步长,而且终点值可能取不到,比如这里的2 a=-3:10 %可以定义负数 a=ones(3,3) %通过函数生成3*3的全1矩阵 a=zeros(10,19)%生成10*19的全0阵 a(1,2)=100 %矩阵引用方式,矩阵下标从1开始,1,2表示的是第1行第2列%元素,注意这是用原括号,和C的数组引用略不同 a(di,dj)=m %可以使用变量作为引用时值,di,dj在运行中动态确定,M也可%以是变量a=zeros(3,3)for di=1:1:3 a(di,1)=19end%以上是一个for循环的示例,由此大家也可以看看for循环的写法6计算符号+,-,*,/ ,,sqrt( )对于数值计算和C是一样的,矩阵+,-要求同维,乘的规则同矩阵乘法规则,如3*7 * 7*12的结果是3*12的矩阵。/在线形代数中作求逆,Matlab也做求逆表示。目前用的较少。在前面大家看到h1=5./sqrt(w.4-6*w.2+25);语句,这里出现w.2这样的语句,意思是平方,但是为什么不写成w2,这是因为w本身变成了向量,不再是一个数,我们需要平方,那这些平方值应该逐点计算,如果写成w2就是矩阵乘,矩阵乘是要满足一定规则,同时结果也不合我们要求,”.”称为点计算,意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年PS铝合金板项目发展计划
- 2025年加工羽毛(绒)合作协议书
- 2025年入团培训考试题目及答案
- 2025年莘县社工招聘考试真题及答案
- 2025年大学团员考试题型及答案
- 事业管理人员考试及答案
- 恩启奶粉培训知识课件
- 恐怖完整的课件
- 急诊科护理工作总结
- 运动塑形考试题及答案
- 公司志编纂工作方案
- 新人教版物理八年级下册知识点总结-物理八年级下册考点人教版
- 抗战胜利70周年主题班会教案
- 2025年九年级语文上册课后习题参考答案
- 2025年保安证考试沟通能力试题及答案
- 全套课件-工程建设监理概论
- 餐饮服务与数字化运营 习题及答案 项目三
- 人教板七年级至九年级英语单词表
- 安全主任竞聘演讲稿
- 污水处理中的自动化控制技术
- 输电线路导地线悬垂双串使用情况探讨
评论
0/150
提交评论