




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB基础入门,主讲人:,1,Matlab基础入门,1Matlab软件基本介绍2Matlab软件界面3变量的定义及特殊变量和常数4基本运算5矩阵操作6m文件的创建7面向过程的matlab程序设计8Matlab绘图9Matlab学习技巧及网络资源10练习题,2,1Matlab软件基本介绍,Matlab名字是由Matrix和Laboratory两个词的前三个字母组合而成的,是由MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。Matlab编程运算与人进行科学计算的思路和表达方式完全一致(主要面向过程)。不像学习其它高级语言如Basic、Fortran和C等那样难于掌握。其基本数据类型是矩阵。具有强大的数值计算和图示能力。具有丰富的工具箱(ToolBox),例如统计工具箱、优化工具箱、神经网络、信号处理等等。,3,2Matlab软件界面,当前路径窗口,历史命令窗口,命令窗口,工具栏,主菜单栏,当前目录路径,文件详细信息,工作区窗口,快速启动窗口按钮,4,3变量的定义及特殊变量及常量,3.1变量的定义变量不需要定义就可以使用,但必须赋值;变量名区分大小写;变量名的第一个字符必须为英文字母,并且变量名长度不超过31个字符;变量名可以包含下连字符、数字,但不能为空格符、标点;变量名不要和函数名重复。基本数据类型为矩阵,操作演示。,5,3变量的定义及特殊变量及常量,3.2特殊变量及常量ans最近生成的无名结果eps浮点数的相对误差pi3.14145926i虚数单位j虚数单位Inf无穷大,如n/0Nan非数值型变量Realmin最小的正浮点数,Realmax最大的浮点数,6,4基本运算,4.1算术运算符加减*乘(包括标量乘,矩阵乘,标量与矩阵乘)/除(包括标量除,矩阵除标量,数组除标量)矩阵求幂(矩阵必须为方阵).*矩阵对应元素相乘./矩阵对应元素相除.矩阵每个元素求幂注意:记不住时试一下!,7,4基本运算,4.2关系运算符大于=大于等于=等于=不等于运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。,8,4基本运算,4.3逻辑运算符同行元素用逗号或空格分隔,不同行元素用分号或回车分开.,例5.1A=1,2,3;4,5,6,输出结果:A=123456,或A=123;456,或A=123456,注:若不指定输出变量,则系统默认ans为变量名;,利用下标,比如A(i,j),可以访问矩阵元素,例如:a=A(2,1)输出为a=4,11,5矩阵操作,(2)矩阵的函数生成,空矩阵zeros(m,n)零矩阵ones(m,n)1矩阵eye(m,n)单位矩阵rand(m,n)(0,1)区间内的均匀分布随机矩阵,例5.2z=zeros(2,3),u=ones(3),z=0.00000.00000.00000.00000.00000.0000,u=1.00001.00001.00001.00001.00001.00001.00001.00001.0000,例5.3e=eye(3,4),x=rand(1,3),e=1.00000.00000.00000.00000.00001.00000.00000.00000.00000.00001.00000.0000,x=0.23110.89130.0185,12,5矩阵操作,5.2向量(数组)的输入,(1)作为矩阵输入,例A=1,2,3;%(行向量)B=1;2;3;%(列向量)C=rand(1,4);%(利用矩阵生成函数),(2)行向量的特殊输入方式,13,5矩阵操作,例5.4A=1:5;%A=12345(公差缺省为1),B=1:2:7;%B=1357(公差为2),C=5:-2:-1;%C=531-1(公差为-2),linspace(0,1,4);%ans=00.33330.66671.0,x=linspace(0,1);%等差数组,从0到1默认划分为100个数值,14,5矩阵操作,5.3矩阵的裁剪、拼接与修改,(1)矩阵的裁剪,在MATLAB中,矩阵的元素可用其行标、列标表示。从一个矩阵中取出若干行(列)构成新矩阵称为裁剪,其中冒号“:”的使用非常重要。,例5.5A=1234;5678;9101112;%定义矩阵A,A(3,:)%提取A的第3行,ans=9101112,A(:,2)%提取A的第2列,ans=2610,X=A(2:3,1,3,4)%提取A的第2,3行,1,3,4列则:X=578;91112,15,5矩阵操作,(2)矩阵的拼接,在MATLAB中,可按照分块矩阵思想,由小矩阵拼接组合成大矩阵,但应注意所有小矩阵维数应当相容。,例5.6由A的第2行,2行1列零向量及2行3列单位阵拼接成3行4列矩阵E.,E=A(2,:);zeros(2,1),eye(2,3),E=567801000010,A=1234;5678;9101112;,16,5矩阵操作,(3)矩阵的编辑修改,在MATLAB中,通过对矩阵的部分元素(子矩阵)重新赋值,可以实现对矩阵元素的编辑和修改。,例5.7A(3,1)=0%将A的第3行1列元素修改为0,A=121056010101112,A(1:2,3:4)=eye(2)%将A的第1,2行3,4列子矩阵改为2阶单位阵,17,5矩阵操作,5.2矩阵运算,(1)矩阵的基本运算,AB(A,B同维数,对应元素相加减)A*B(A列数=B行数,通常矩阵乘法)AB(左除,A,B同行数,方程AX=B解)B/A(右除,A,B同列数,方程XA=B解)A(共轭转置)Ap(矩阵乘幂,A为方阵),18,5矩阵操作,(2)常数与矩阵的运算,bA、b*A、bA、A/b(b与A各元素做相应运算,对于除法b只能做除数),(3)矩阵的特殊运算(点运算),A.*B、A.B、A./B、A.B(A、B维数相同,按对应元素运算),A.b、b./A、A.b、b.A(b与A各元素做相应运算),19,5矩阵操作,例5.8X1=A+B,X2=C*B,X3=AB,输出结果:X1=333614X2=814630X3=0.7143-0.28570.85710000.42860.4286-0.2857,其中:A=123312B=210302C=1230,20,5矩阵操作,5.3常用矩阵操作函数sum矩阵求和prod矩阵相乘size矩阵大小length矩阵长度sort矩阵排序max/min矩阵最大值/最小值reshape矩阵变形函数repmat矩阵堆叠find矩阵查询,21,6M文件的创建,1脚本文件(亦称命令M-文件)脚本文件的结构比较简单,它没有输入参数和输出参数,只是一些MATLAB命令行的组合。脚本文件中定义的变量都是全局变量。2函数文件(亦称函数M-文件)通常函数文件包含以下几个部分:(1)函数定义行:位于文件首行,以function开头;(2)帮助信息:紧跟函数定义行后,以%开头注释行;(3)函数体:函数的执行语句部分;(4)注释部分:命令行中以“%”开始直到该行结束。,22,6M文件的创建,语句的一般形式:变量=表达式注:若缺省“变量=”,则系统默认ans为变量名。若语句末尾以分号“;”结束,则命令执行后不显示计算结果若语句太长可以使用续行符“”将其延续到下一行一行中可书写多个语句,各语句之间要用逗号(显示计算结果)或分号(不显示计算结果)分开。,23,例6.1给定矩阵,A=123;456;%输入矩阵AB=401;012;%输入矩阵BC=A+B%计算输出A与B的和D=A-B%计算输出A与B的差,编写命令文件,输入矩阵A、B,并计算输出它们的和与差。,解:建立如下M-文件SY1.m,将上述文件以SY1.m为名存盘,然后在命令窗口调用此M-文件,则有,6M文件的创建,24,C=524468;,SY1,functionC,D=SY2(A,B)%给定矩阵A和B,计算输出其矩阵和C与矩阵差DC=A+B;%计算矩阵和D=A-B;%计算矩阵差,例6.2编写函数文件,计算任意两个同维数矩阵的和与差.,解:建立如下函数文件SY2.m,以SY2.m为名存盘,然后在命令窗口调用此函数文件.,D=-322444;,6M文件的创建,25,A=123;456;B=401;012;%输入参数赋值,C,D=SY2(A,B)%调用函数SY2.m,注:函数文件的首行须以function开头,后跟输出参数(多于1个时用方括号括起),函数名及输入参量(圆括号括起),参量之间用逗号隔开。函数文件的变量一般是局部变量,可以用global命令将某些变量说明为全局变量。函数文件名一般应与函数定义行中的函数名相一致。函数文件可以递归调用。,C=524468;,D=-322444;,6M文件的创建,26,1M-文件的建立与编辑,方法1:在命令窗口输入命令:editM-文件名即可打开相应M-文件编辑器。,方法2:单击菜单“File”-“New”-“M-file”即可打开空白M-文件编辑器;,2M-文件的调用,方法1:在MATLAB命令窗口中直接键入M-文件名,然后回车,即可运行该M-文件;,方法2:在M-文件编辑窗口中,单击工具钮RUN或菜单Debug/RUN,即可运行该M-文件。,6M文件的创建,27,其中,实际参数和形式参数可以不同;输入参数要用圆括号将其括起,输出参数多于一个时,要用方括号“”将其括起;参数间用逗号隔开。,注:被调用的M-文件必须位于当前目录或文件搜索路径范围内。,调用函数文件时,须事先对输入参量赋值,然后按照以下格式调用,输出参量=函数名(输入参量)(回车),使用以下命令格式可将指定目录设置为当前目录:,cd路径目录名,6M文件的创建,28,7面向过程的matlab程序设计,Matlab的工作方式有二种1.交互式的指令操作方式。即用户在命令窗口中输入命令并按下回车键后,系统执行该指令并立即给出运算结果。2.M文件的编程方式。M文件是由matlab语句构成的文件,且文件名必须以.M为扩展名,如example.m。用户可以用任何文件编辑器来对M文件进行编辑。,29,7面向过程的matlab程序设计,M文件的程序执行过程:从上到下,依次执行。面向过程的程序设计程序结构主要是循环与判断,相应的控制流语句如下:7.1循环结构(1)for-end循环用于循环次数事先确定的,格式为fori=n:s:m语句体end其中,s为步长,可以为正数,负数或小数。,30,7面向过程的matlab程序设计,基本功能:循环循环变量依次取矩阵的每一列,然后执行一次语句体;遍历矩阵各列后,然后执行end的后续命令。注:格式中步长s省略时,其则默认步长为1.for循环不能由循环体内给循环变量赋值来终止;for循环可以按需要进行嵌套;,31,例7.1编写函数文件,计算并输出矩阵A的各行向量的元素和.,%调用函数A=1234;5678A=12345678X=hanghe(A)X=1026,解:编写函数文件(hanghe.m)如下:,functionX=hanghe(A)m,n=size(A);%计算A维数X=zeros(m,1);%零初始化fori=1:ny=A(:,i);X=X+y;end,7面向过程的matlab程序设计,32,(2)while语句,while语句体end,基本功能:若关系表达式值为真,则反复执行语句体,直至关系表达式值为假,则终止循环,转而执行end的后续命令。,注:若关系表达式值为矩阵,则仅当结果矩阵的所有元素均为真时才执行循环体;否则不执行循环体。循环体中用break命令可强行中止循环;用continue命令可中止循环的当前迭代,转而执行下一次迭代。for用于循环次数确定,而while用于循环次数不确定。,7面向过程的matlab程序设计,33,运行程序结果:n=10E=0.9766,E=1000;n=0;%赋初值,n用以累计循环次数whileE1%进入循环E=E/2;n=n+1;%EPS的值减半,n累计加1endE%输出小于或等于1的En%输出衰减次数n,例7.2编写M-文件,计算使E=1000小于1的半衰减次数。,解:编写命令文件如下:,7面向过程的matlab程序设计,34,7.2判断结构(1)if语句,ifelseifelseifelseend,基本功能:若表达式j值为真,则执行语句体j(j=1,n),否则,执行语句体n+1;然后执行end后续命令.,注:else子句与elseif子句不是必需的,但关键字“end”不能省.,7面向过程的matlab程序设计,35,解:编写函数文件(fenduan.m)如下:,例7.3编写函数文件,计算分段函数:,functiony=fenduan(x)ifxy1=fenduan(-3)y1=0y2=fenduan(3.5)y2=-0.3508y3=fenduan(7.3)y3=1.0168,7面向过程的matlab程序设计,36,switchcase值x1case值xnotherwiseend,(2)switch语句,基本功能:首先计算表达式或变量的值,若该值与值x1,x2,xn相等,则执行相应的语句体,否则,执行语句体n+1;然后执行end的后续命令。,注:otherwise子句不是必需的,但关键字“end”不能省.,7面向过程的matlab程序设计,37,例7.4编写命令文件,从键盘输入某学生成绩(5分制),由计算机判断并输出该生成绩的优良等级.,解:编写命令文件(SY00507.m)如下:,x=input(请输入您的分数:x=);switchxcase5disp(优秀!);case4disp(良好!);case3disp(及格!);otherwisedisp(不及格!)end,%运行程序SY00507请输入您的分数:x=4良好!,7面向过程的matlab程序设计,38,7.3其它控制流语句,(1)try语句,trycatchend,基本功能:正常情况下只执行;当执行语出现可预见的错误时,则将错误信息写入系统变量lasterr,并转向执行。,7面向过程的matlab程序设计,39,functionX=SY(A,B)tryX=A*B;catchdisp(*错误乘法:A*B*)lasterrX=;end,例7.5计算矩阵A,B的积,当不能相乘时,输出空矩阵并显示相应错误信息。,解:编写函数文件(SY.m)如下:,7面向过程的matlab程序设计,40,8Matlab绘图,MATLAB系统提供了丰富的二维和三维绘图函数,用户在绝大多数情况下直接利用这些函数即可达到图形绘制要求,而不必访问那些低层绘图对象,因此极大地方便了用户。,41,8Matlab绘图,8.1二维图形基本格式plot(x,y,s)注:若缺省x,则绘制以y元素的下标为横标的折线图;若y为复向量,则plot(y)等效于plot(real(y),imag(y);若缺省s,则以默认线型、颜色绘制曲线。线型(线方式)-实线:点线-.虚点线-波折线.圆点+加号*星号xx形o小圆颜色:y黄r红g绿b蓝w白k黑m紫c青,42,8Matlab绘图,例8.1绘制正玄曲线x=linspace(0,2*pi,30);y=sin(x);plot(x,y)%默认线型、颜色figure%打开一个新的图形窗口plot(x,y,b*)%指定颜色、线型:绿色星号,43,8Matlab绘图,画多重线(同一个坐标系下画多条曲线)方法1:plot(x1,y1,x2,y2,xn,yn)方法2:plot(X,Y)%X,Y为矩阵方法3:holdon%保持当前图形窗口绘图状态plot(x1,y1),plot(xn,yn)holdoff%结束当前图形窗口绘图状态,44,8Matlab绘图,例8.2在同一个坐标系下绘制正玄曲线及余玄曲线x=linspace(0,2*pi,30);y1=sin(x);y2=cos(x);plot(x,y1,x,y2)或Y=sin(x);cos(x);plot(x,Y)或holdonplot(x,y1)plot(x,y2)holdoff,45,8Matlab绘图,网格与标记(在图上加网格、标题、轴标记)加图标题:title(字符串)标记X轴:xlabel(字符串)标记Y轴:ylabel(字符串)增加/取消网格:grid/gridoff加注释:text(a,b,字符串)%坐标定位gtext(字符串)%鼠标定位增加/取消图例:legend(字串1,字串2,)/legendoff,46,8Matlab绘图,例8.3绘制正玄,余玄曲线,并加上标题,网格,注释等。x=linspace(0,2*pi,30);y1=sin(x);y2=cos(x);plot(x,y1,x,y2)axis(07-11)title(正玄/余玄曲线)xlabel(时间T),ylabel(电压V)gtext(y=sin(x)gtext(y=cos(x)gridlegend(sin,cos),47,8Matlab绘图,多图显示命令:subplot(m,n,p)将图形窗口分成mn个图形区域,选择第p个子图区域.子图区域编号沿头一行自左向右,接着排下一行,。例8.4在一个图形窗口分别绘制以下4个函数曲线图,并加上图标题:y=sin(x),z=cos(x),u=2sin(x)cos(x),v=sin(x)/cos(x),48,8Matlab绘图,程序:x=linspace(0,2*pi,30);y=sin(x);subplot(2,2,1),plot(x,y)axis(02*pi-11),title(y=sin(x)z=cos(x);subplot(2,2,2),plot(x,z)axis(02*pi-11),title(z=cos(x)u=2*sin(x).*cos(x);subplot(2,2,3),plot(x,u)axis(02*pi-11),title(u=2sin(x)cos(x)v=sin(x)./cos(x);subplot(2,2,4),plot(x,v)axis(02*pi-2020),title(v=sin(x)/cos(x),49,8Matlab绘图,其它有关函数(1)figure打开一个新的图形窗口(2)close/clf或clg关闭/清除图形窗口(3)fplot(F,xminxmaxyminymax)例8.5绘制函数y=sin(x)/x曲线图.fplot(sin(x)./x,-2020-0.41.2)gtext(sin(x)/x),50,8Matlab绘图,8.2三维绘图绘制三维线图或点图plot3(x,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学创业孵化基地运营方案
- 初中英语语法难点讲解与练习卷
- 职场新人职业素养提升指南
- 企业碳中和战略规划与实践
- 企业社会保险缴纳操作流程培训资料
- 企业应收账款管理优化报告
- 消防设备维护年度实施方案
- 后勤主任工作职责与绩效考核
- 高考理科数学全真模拟试题含解析
- 文言文翻译与赏析高考专项练习
- 美术微课课题立项申报书
- GB/T 46084-2025燃煤锅炉火焰温度图像检测技术规范
- 2025年贵州省毕节市辅警招聘考试题题库(含参考答案)
- 女职工法律培训
- 2025口腔执业医师考试仿真模拟试题及答案
- 2025年辅警考试公共基础知识真题库(含答案)
- 兵团面试题目及答案
- 2025劳动合同范本下载
- 2025-2026学年高二上学期数学第一次月考立体几何卷全解析【测试范围:沪教版2020必修第三册第十章】(上海专用)
- 小学法律知识竞赛试题(附答案)
- 浙教版(2023)五年级上册信息科技 第1课 身边的算法 课件
评论
0/150
提交评论