Matlab基本介绍1讲解
Matlab介绍入门知识

Matlab介绍入门知识1. Matlab简介MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵.MATLAB自问世以来,就是以数值计算称.MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”.经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具.由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的.MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具.工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等.随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,MATLAB 提供的工具箱已覆盖信号处理、系统控制、统计计算、优化计算、神经网络、小波分析、偏微分方程、模糊逻辑、动态系统模拟、系统辨识和符号运算等领域.当前它的使用范围涵盖了工业、电子、医疗、建筑等各行各业.MATLAB中包括了图形界面编辑GUI,让使用者也可以象VB、VC、VJ、DELPHI等那样进行一般的可视化的程序编辑.在命令窗口(matlab command window)键入simulink,就出现(SIMULINK) 窗口.以往十分困难的系统仿真问题,用SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视的原因所在.MATLAB 语言由美国 The MathWorks 开发,最早是由C.Moler用Fortran语言编写的,用来方便地调用LINPACK和EISPACK矩阵代数软件包的程序.后来他创立了MATHHWORKS公司,对MATLAB作了大量的、坚持不懈的改进.Cleve B.Moler是The MathWork公司的主席和首席科学家.曾任密歇系教授.他在两个计算机硬件制造商Intel公司的Hypercube组织和Arden Computers 公司工作了五年.他的主要专业兴趣在于数值分析和科学计算.他是MATLAB软件的创始者,也是著名的矩阵计算软件包LINPACK和EISPACK的著作这一,已撰写了三本有相关数值方法的教材.同时,他在SIAM(美国工业与应用数学学会)历任期刊编辑、委员会成员和副总裁,并从1996年开始担任理事会成员.2. Matlab入门知识Matlab变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符.在MATLAB中,变量名区分字母的大小写.赋值语句:变量=表达式或表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵.clear命令用于删除MATLAB工作空间中的变量.who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单.who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息.利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat.MAT文件的生成和装入由save和load命令来完成.常用格式为:save 文件名 [变量名表] [-append][-ascii]load 文件名 [变量名表] [-ascii]其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作.变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔.当变量名表省略时,保存或装入全部变量.-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理.save命令中的-append选项控制将变量追加到MAT文件中.(1) 向量的创建用步长生成法:数组=初值:步长(增量):终值>> a=1:0.5:3a =1.0000 1.50002.0000 2.50003.0000用linspace生成:数组=linspace(初值,终值,等分点数目)>> b=linspace(1,3,5)b =1.0000 1.50002.0000 2.50003.0000列向量用分号(;)作为分行标记:>> c=[1;2;3;4;]c =1234若不想输出结果,在每一条语句后用分号作为结束符,若留空或用逗号结束,则在执行该语句后会把结果输出来.>> a+b;>> a+bans =2 3 4 5 6(2) 矩阵的创建直接输入:最简单的建立矩阵的方法是从键盘直接输入矩阵的元素.具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔.>> A=[1 2 3;4 5 6;2 3 5]A =1 2 34 5 62 3 5利用矩阵函数创建:>> B=magic(3)%魔方阵B =8 1 64 9 2>> C=hilb(3)%3阶Hilbert矩阵C =1.0000 0.5000 0.33330.5000 0.3333 0.25000.3333 0.2500 0.2000Matlab中用%引导注释其它创建矩阵函数还有:eye(m,n):生成m行n列单位矩阵.zeros(m,n):生成m行n列全零矩阵.ones(m,n):生成全1矩阵.rand(m,n):生成随机矩阵.rand:生成一个随机数.diag(A):取A的对角线元素.tril(A):取A的下三角元素.triu(A):取A的上三角元素.hilb(n):生成n维Hilbert矩阵.randn(n):产生均值为0,方差为1的标准正态分布随机矩阵.vander(V):生成以向量V为基础向量的范得蒙矩阵.invhilb(n): 求n阶的希尔伯特矩阵的逆矩阵.toeplitz(x,y): 生成一个以x为第一列,y为第一行的托普利兹矩阵compan(p): 生成伴随矩阵, p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后.pascal(n): 生成一个n阶帕斯卡矩阵.compan: 生成伴随矩阵(3) 矩阵运算MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方).加法:>> A+Bans =9 3 97 10 136 12 7减法:>> B-Aans =7 -1 3-1 0 12 6 -3乘法:>> A*Bans =71 83 7145 62 43除法:>> magic(3)/hilb(3)ans =1.0e+003 *0.2160 -1.1760 1.14000.0570 -0.4080 0.4500-0.2280 1.2240 -1.1400在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算.点运算符有.*、./、.\和.^.两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同.>> A.*Bans =8 2 1812 25 428 27 10MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于).>> A>Bans =0 1 01 0 00 0 1MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非).在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示.设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0.a|b a,b中只要有一个非零,运算结果为1.~a 当a是零时,运算结果为1;当a非零时,运算结果为0.3. 矩阵操作和矩阵函数矩阵通过下标引用矩阵的元素,矩阵元素的序号就是相应元素在内存中的排列顺序.在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推.(1) 矩阵拆分利用冒号表达式获得子矩阵.A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素.A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素.此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵.end表示某一维的末尾元素下标.(2) 利用空矩阵删除矩阵的元素在MATLAB中,定义[]为空矩阵.给变量X赋空矩阵的语句为X=[].(3) 矩阵的转置转置运算符是单撇号(‘).(4) 矩阵的旋转利用函数rot90(A,k)将矩阵A旋转90o的k倍,当k为1时可省略.(5) 矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推.MATLAB对矩阵A实施左右翻转的函数是fliplr(A).(6) 矩阵的上下翻转MATLAB对矩阵A实施上下翻转的函数是flipud(A).(7) 方阵A的逆矩阵inv(A)>> A=magic(3)A =8 1 63 5 74 9 2>> B=inv(A)B =0.1472 -0.1444 0.0639-0.0611 0.0222 0.1056-0.0194 0.1889 -0.1028>> A*Bans =1.0000 0 -0.0000-0.0000 1.0000 00.0000 0 1.0000(8) 方阵的行列式>> det(A)ans =-360(9) 矩阵的迹>> C=trace(A)C =15(10) 一些常用的基本初等三角函数三角函数:sin(x),cos(x),tan(x)反三角函数:asin(x),acos(x),atan(x)指数函数:exp(x)自然对数:log(x)常用对数:log10(x)以2为底的对数:log2(x)开平方:sqrt(x)绝对值:abs(x)计算一般函数值:eval(f)求虚部函数: imag(x)求实部函数: real(x)角相位函数:angle(x)共轭复数函数:conj(x)沿零方向取整:fix (x)舍入取整:round(x)沿负无穷大方向取整:floor (x)沿正无穷大方向取整:ceil(x)求除法的余数: rem符号函数:sign(x)最大公约数:gcd()4. 图形可视化(1) 二维绘图指令plotplot函数的基本调用格式为:plot(x,y,)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据.plot(x)plot函数最简单的调用格式.当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线.实际上是绘制折线图.plot(x1,y1,x2,y2,…,xn,yn)当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同.每一向量对可以绘制出一条曲线,可以在同一坐标内绘制出多条曲线.plotyy(x1,y1,x2,y2)绘制出具有不同纵坐标标度的两个图形.hold on/off保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换.plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)设置曲线样式进行绘图.选项字段见下表:(2) 图形标注:title('图形名称'):图形标题xlabel('x轴说明')ylabel('y轴说明')text(x,y,'图形说明')legend('图例1','图例2',…)gtext('用鼠标确定位置的字符说明')(3) 坐标控制axisaxis([xmin xmax ymin ymax zmin zmax])axis函数功能丰富,常用的格式还有:axis equal:纵、横坐标轴采用等长刻度.axis square:产生正方形坐标系(缺省为矩形).axis auto:使用缺省设置.axis off:取消坐标轴.axis on:显示坐标轴.grid on/off:网格开/关box on/off:加/不加边框线上述命令示例如下:>> x=1:length(peaks);>> plot(x,peaks);>> box on;>> title('绘制混合图形');>> xlabel('X轴');>> ylabel('Y轴');绘制图像为:05101520253035404550-8-6-4-2246810绘制混合图形X 轴Y 轴(4) 二维数值函数的专用绘图函数fplotfplot(functionname,[a,b],tol,选项)其中functionname 为函数名,以字符串形式出现,[a,b]为绘图区间,tol 为相对允许误差,其系统默认值为2e-3.选项定义与plot 函数相同.>> fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1]);-6-4-20246-6-4-2246(5) 二维符号函数曲线专用命令ezplotf = f(x)时:ezplot(f):在默认区间-2π<x<2π绘制f = f(x)的图形.ezplot(f, [a,b]):在区间a<x<b 绘制f = f(x)的图形f = f(x,y)时:ezplot(f):在默认区间-2π<x<2π和-2π<y<2π绘制f(x,y) = 0的图形.ezplot(f, [xmin,xmax,ymin,ymax]):在区间xmin<x<xmax 和ymin<y<ymax 绘制f(x,y) = 0的图形ezplot(f, [a,b]):在区间a<x<b 和a<y< b 绘制f(x,y) = 0的图形若x = x(t),y = y(t):ezplot(x,y):在默认区间0<t<2π绘制x=x(t)和y=y(t)的图形.ezplot(x,y, [tmin,tmax]):在区间tmin < t < tmax 绘制x=x(t)和y=y(t)的图形>> figure;ezplot('cos(tan(pi*x))',[ 0,1]);00.10.20.30.40.50.60.70.80.91-1-0.50.51x cos(tan( x))(6) 图形窗口的分割subplotsubplot(m,n,p)该函数将当前图形窗口分成m ×n 个绘图区,即每行n 个,共m 行,区号按行优先编号,且选定第p 个区为当前活动区.在每一个绘图区允许以不同的坐标系单独绘制图形.(7) 其他坐标系下的二维数据曲线图对数坐标图形:semilogx(x1,y1,选项1,x2,y2,选项2,…)semilogy(x1,y1,选项1,x2,y2,选项2,…)loglog(x1,y1,选项1,x2,y2,选项2,…)极坐标图polar:polar(theta,r,选项)其中theta 为极坐标极角,r 为极坐标矢径,选项的内容与plot 函数相似. 二维统计分析图:bar(x,y,选项):条形图stairs(x,y,选项):阶梯图stem(x,y,选项):杆图fill(x1,y1,选项1,x2,y2,选项2,…):填充图(8) 三维曲线plot3plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同.当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线.当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数.>> t=0:0.1:8*pi;>> plot3(sin(t),cos(t),t);-11(9) 产生三维数据在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵.其格式为:[X,Y]=meshgrid(x,y);语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数.(10) 绘制三维曲面的函数surf 函数和mesh 函数的调用格式为:mesh(x,y,z,c)surf(x,y,z,c)一般情况下,x,y,z 是维数相同的矩阵.x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围.(11) 标准三维曲面sphere 函数的调用格式为:[x,y,z]=sphere(n)cylinder 函数的调用格式为:[x,y,z]= cylinder(R,n)MATLAB 还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示.(12) 其他三维绘图指令介绍bar3函数绘制三维条形图,常用格式为bar3(y)bar3(x,y)stem3函数绘制离散序列数据的三维杆图,常用格式为:stem3(z)stem3(x,y,z)pie3函数绘制三维饼图,常用格式为:pie3(x)fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为:fill3(x,y,z,c)5. 程序控制结构(1)数据的输入:A=input(提示信息,选项)其中提示信息为一个字符串,用于提示用户输入什么样的数据.如果在input 函数调用时采用's'选项,则允许用户输入一个字符串.(2)数据的输出:disp(输出项)(3)程序的暂停:pause(延迟秒数)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行. 若要强行中止程序的运行可使用Ctrl+C命令.(4)单分支if语句:if 条件语句组end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句.(5) 双分支if语句:if 条件语句组1else语句组2end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句.(6) 多分支if语句:if 条件1语句组1elseif 条件2语句组2……elseif 条件m语句组melse语句组nend语句用于实现多分支选择结构.(7)switch语句:switch 表达式case 表达式1语句组1case 表达式2语句组2……case 表达式m语句组motherwise语句组nend(8)try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.(9)for语句for语句的格式为:for 循环变量=表达式1:表达式2:表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.for语句更一般的格式为:for 循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕.(10)while语句while语句的一般格式为:while (条件)循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.(11)break语句和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环.(12)循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构.(13)函数文件的基本结构函数文件由function语句引导,其基本结构为function 输出形参表=函数名(输入形参表)注释说明部分函数体语句其中以function开头的一行为引导行,表示该M文件是一个函数文件.函数名的命名规则与变量名相同.输入形参为函数的输入参数,输出形参为函数的输出参数.当输出形参多于一个时,则应该用方括号括起来.(14)函数调用函数调用的一般格式是:[输出实参表]=函数名(输入实参表)注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错.函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能.在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身.一个函数调用它自身称为函数的递归调用.(15)函数参数的可调性在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数.只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理.(16)全局变量与局部变量全局变量用global命令定义,格式为:global 变量名(17)程序调试Debug菜单项:该菜单项用于程序调试,需要与Breakpoints菜单项配合使用.Breakpoints菜单项:该菜单项共有6个菜单命令,前两个是用于在程序中设置和清除断点的,后4个是设置停止条件的,用于临时停止M文件的执行,并给用户一个检查局部变量的机会,相当于在M文件指定的行号前加入了一个keyboard命令.调试命令:除了采用调试器调试程序外,MATLAB还提供了一些命令用于程序调试.命令的功能和调试器菜单命令类似,具体使用方法请读者查询MATLAB帮助文档.例1.1 计算sin x ,[0,]4x π∈. 解:创建符号函数:>> syms x;>>f=sym('sin(x)')f =sin(x)展开至7阶泰勒级数:>> h=taylor(f,8,0)h =x-1/6*x^3+1/120*x^5-1/5040*x^7求泰勒级数在0.5x =处的函数值:>> subs(h,x,0.5)ans =0.479425533234127也可以通过内联函数来求解:>>H=inline(h)H =Inline function:H(x) = x-1./6.*x.^3+1./120.*x.^5-1./5040.*x.^7 >>feval(H,0.5)ans =0.479425533234127例 1.2 计算积分值1011I dx x=+⎰. 解:解法一:( 符号法):>> I=int('1/(1+x)','x',0,1)I =log(2)解法二 :(数值法):>>x=0:0.2:1; %将[0,1]等分为4等份>>f=1./(1+x); %分别计算每一个等分点的函数值>>I=0;>>for i=1:5I=I+(f(i)+f(i+1))/2*0.2; %将每一小曲边的梯形累加起来作为积分值end>> vpa(I,9) %取结果的小数精度为9位小数ans =.695634921例 1.30)a >的值.解:解法一(符号法):>> A=sym('a');>> sqrt(A)ans =a^(1/2)解法二(数值法):按以下迭代公式迭代计算近似值:11(),0,1,2,...2k k ka x x k x +=+= 建立函数文件msqrt.mfunction x=msqrt(x0,a)%用迭代法近似计算平方根%x0为初始迭代值,a 为开平方数format long ;x=zeros(20,1);x(1)=x0;for i=2:20x(i)=1/2*(x(i-1)+a/x(i-1));enddisp(x);02x =:>> msqrt(2,3);2.0000000000000001.7500000000000001.7321428571428571.7320508100147271.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.732050807568877上述结果为迭代过程计算的中间结果,分析数据可知迭代收敛速度快,只需四次计算即可计算出较为准确的数值.例1.4 计算11759760-,视已知数为精确数,用4位浮点数计算.解:直接在Matlab中输入式子:>> 1/759-1/760ans =1.7336e-006若先转化为浮点数再运算可得:>> a=1/759,b=1/760,a-ba =0.0013b =0.0013ans =1.7336e-006可见Matlba在计算时,数据结构都取为双精度而提高了运算准确度.若以符号运算计算之,有:>> a=sym('1/759'),b=sym('1/760'),c=a-ba =1/759b =1/760c =1/576840可见符号运算准确但耗费运算时间.例1.5 解方程21810x x-+=.解:符号法解方程:>> x=solve('x^2-18*x+1','x')x =9+4*5^(1/2)9-4*5^(1/2)将结果保留小数点6位:>> vpa(x,6)ans =17.9443.5572e-11.2 Matlab中数值计算精度1. Matlab中有三种运算精度,它们分别为数值算法、符号算法和可控精度算法,将它们分别介绍如下:(1)数值算法把每个数取为16位,计算按浮点运算进行,它是运算速度最快的一种算法.(2)符号算法把每个数都变为符号量,运算按有理量计算进行,它的优点是能够得到精确结果,缺点是占用空间大,并且运算速度最慢.(3)可控精度算法介于上述两种算法之间,它能够使运算在可控的精度下进行计算.2. Matlab的数据显示格式,列表如下:format并不影响matlab如何计算和存储变量的值.对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的.对整型变量采用整型数据.整型变量总是根据不同的类(class)以合适的数据位显示.3. Matlab的特殊变量ans :对最近输入的反应computer :当前计算机类型eps :浮点精度flops :计算浮点操作次数,现已不再常用i :虚部单位inf :无穷大inputname :输入参数名j :虚部单位nan :非数值nargin :输入参数的数目nargout :输出参数的数目(用户定义函数)pi :圆周率realmax :最大正浮点数realmin :最小正浮点数vararginvarargout :返回参数数目(matlab函数)cputime:CPU工作时间。
Matlab基础知识点

MATLAB讲义第一章 MATLAB系统概述1.1 MATLAB系统概述MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。
如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。
目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成(1)MATLAB语言MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。
同时MATLAB又具有面向对象编程特色。
MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。
还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
(5)MATLAB应用程序接口(API)MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。
1.3 MATLAB的应用范围包括:MATLAB的典型应用包括:●数学计算●算法开发●建模、仿真和演算●数据分析和可视化●科学与工程绘图●应用开发(包括建立图形用户界面)以矩阵为基本对象第二章 Matlab基础2.1 MATLAB快速入门(1)搜索路径搜索路径也被看作是MATLAB的路径,其包含的文件被认为在路径上。
matlab ppt课件

使用GUI来控制其他应用程序或软件的功能,例如打开文件、保存数据、调整参数等。
应用程序控制面板
07
matlab在信号处理中的应用
信号的定义与分类
信号是传递或携带信息的物理量,可以是离散的或连续的,单通道或多通道的。
信号处理的含义
信号处理是对信号进行变换、分析和解释的过程,以适应不同的应用需求。
matlab ppt课件
matlab简介matlab基础知识matlab矩阵运算matlab数据分析matlab科学计算matlab图形界面设计matlab在信号处理中的应用
contents
目录
01
matlab简介
MATLAB诞生于美国,作为方便易用的科学计算工具,它被引入到数值计算领域。
1980年代初期
02
matlab基础知识
01
在MATLAB中,用户可以通过命令行输入命令,进行计算、绘图等操作。
命令行交互
02
用户可以通过编写脚本文件,保存一组相关的命令,以供多次使用。
脚本文件
03
用户可以编写函数文件,实现特定功能的代码块,并在命令行或脚本文件中调用。
函数文件
单元数组
单元数组是一种灵活的数据类型,可以包用于设置组件的激活状态,例如使按钮可点击或不可点击。
通过编写回调函数,可以定义当用户与组件交互时要执行的操作。
uimenu
uiactive
uicontrol
1
2
3
使用GUI接收数据,通过图形呈现数据信息,例如绘制曲线图或散点图。
数据可视化
通过GUI接收用户输入的参数,调用算法进行处理,并将结果显示在GUI上。
03
matlab矩阵运算
matlab知识点总结ppt

matlab知识点总结ppt一、MATLAB基础知识1. MATLAB的基本操作MATLAB是一种用于科学计算和工程应用的高级编程语言和交互式环境。
它的基本操作包括变量的定义、矩阵和数组的操作、函数的使用以及输出结果等。
2. MATLAB的变量和数据类型MATLAB的变量可以是数组、矩阵或者标量。
它的数据类型包括数值型、字符型、逻辑型等,可以方便地进行数据处理和计算。
3. MATLAB中的矩阵和数组在MATLAB中,矩阵和数组是非常重要的数据结构,它们可以用来存储和处理数据。
MATLAB提供了丰富的矩阵和数组操作函数,包括矩阵乘法、转置、逆矩阵等。
4. MATLAB中的流程控制MATLAB中的流程控制包括条件语句、循环语句以及函数的定义和调用等,可以实现复杂的程序逻辑和算法。
5. MATLAB的图形绘制MATLAB提供了丰富的绘图函数,可以用来绘制二维和三维图形,包括线条、曲线、散点图等,对数据的可视化分析非常有用。
6. MATLAB的文件操作在MATLAB中,可以对文件进行读写操作,包括文本文件、数据文件和图像文件等,非常方便地进行数据导入和导出。
二、MATLAB高级应用1. MATLAB的符号计算MATLAB提供了符号计算工具箱,可以进行代数运算、微积分和方程求解等,对于数学建模和分析非常有用。
2. MATLAB的数学建模MATLAB可以用来进行数学建模和仿真,包括信号处理、控制系统、图像处理等领域,可以方便地进行模型建立和分析。
3. MATLAB的数据分析MATLAB提供了丰富的数据分析工具箱,包括统计分析、机器学习和深度学习等,可以帮助用户进行数据挖掘和分析。
4. MATLAB的工程应用MATLAB可以用来解决各种工程问题,包括机械设计、电路设计、通信系统等,提供了丰富的工程计算工具和模拟仿真工具。
5. MATLAB的应用开发MATLAB可以用来进行应用开发,包括图形界面设计、算法实现和软件集成等,可以定制化地开发各种应用程序。
MATLAB基础知识

一、1、数学建模基础知识及常用命令一、界面窗口介绍:1 命令窗口(command window),窗口中输入命令,回车实现计算或绘图功能。
2 工作空间窗口(work space)运行matlab命令时所产生的变量都被加入到工作空间,该窗口可以显示命令窗口中已输入的变量的名称,数值等。
3 命令历史窗口(command history)显示所有执行过的命令,选定某个命令时可以双击或按F9执行。
4 当前目录窗口(Current folder)显示当下目录下的文件信息。
二、常用运算1、算术运算符加+ 减- 乘* 左除/ 右除\ 乘方^注意:在普通的数值运算中,左除为我们常用的除法形式,左除右除结果比较像逆运算,如1/2 和1\2结果互为倒数,但在矩阵的运算中,结果完全不一样,类似于左乘和右乘结果一般会不一样。
运算的优先级:从左到右,幂运算最高优先级,乘除法具有相同次优先级,加减法具有相同的低优先级,括号可以用来改变优先次序。
大家可以进行几个普通计算(练习10分钟)1、325+47⨯÷2、4 59+986-2.7+55-1033.5+20⨯()29()2、数据显示格式默认情况下,matlab显示小数点后4位小数,可以利用format命令改变显示格式(一般写在要改变的数值的命令前):format short 小数点后4位format long 小数点后15位format bank 小数点后2位(以上为三个常用的)format rat 最接近的有理数如以 为例:>> pi= 3.1416>> format long>> pi>> format rat>> pians =355/113>> format bank>> pians =3.14>> format short>> pians =3.1416三、matlab变量1、变量赋值形式变量=表达式(数值)或表达式(数值)其中,“=”为赋值符号,将右边表达式的值赋给左边变量(上面左的含义),当不指定输出变量时,matlab将表达式的值赋给临时变量ans(右的含义)。
Matlab基本功能及使用方法

Matlab基本功能及使用方法Matlab是一种专业的计算机软件,广泛应用于科学计算、数据分析和工程模拟等领域。
它具有强大的数学计算功能和灵活的编程接口,使得科学家、工程师和研究人员能够快速、高效地处理和分析数据。
本文将介绍Matlab的基本功能及使用方法,帮助读者快速上手并掌握Matlab的基本操作和应用技巧。
1. Matlab的界面和基本操作Matlab的界面分为工作区、命令窗口、编辑器和图形界面等几个部分。
在工作区可以查看和管理当前变量,命令窗口可以输入和执行Matlab命令,编辑器则用于编写和运行Matlab脚本或函数。
同时Matlab还提供了丰富的工具箱,包括统计工具箱、优化工具箱、图像处理工具箱等,可以根据需要加载并使用。
2. Matlab的基本数据类型和运算Matlab支持常见的数据类型,如标量、向量、矩阵和多维数组等。
可以使用Matlab进行基本的数学运算,包括加减乘除、幂运算和三角函数等。
Matlab还提供了丰富的数学函数和操作符,使得数学计算变得更加简单和高效。
3. 数据的导入和导出Matlab可以方便地导入和导出各种数据格式,如文本文件、Excel文件、图像文件和音频文件等。
可以使用Matlab提供的函数读取和处理数据,也可以将计算结果和图表保存为文件,方便后续的使用和分享。
4. 数据的可视化Matlab具有强大的数据可视化功能,可以绘制各种类型的图表和图形,如折线图、散点图、柱状图和3D图等。
可以使用Matlab提供的函数设置图表的样式和属性,如线条颜色、坐标轴范围和图例等。
通过数据可视化,可以更直观地理解和展示数据,揭示数据背后的规律和趋势。
5. 图像处理和信号处理Matlab在图像处理和信号处理方面有着广泛的应用。
可以使用Matlab提供的函数读取和处理图像,如图像的滤波、边缘检测和图像增强等。
同时,Matlab还提供了丰富的信号处理函数和工具箱,如离散傅里叶变换、数字滤波器设计和信号重构等,可以对信号进行分析和处理,实现各种信号处理算法和方法。
MATLAB基础知识及使用方法

MATLAB基础知识及使用方法第一章:MATLAB简介与环境介绍1.1 MATLAB概述MATLAB是一种高级编程语言和数值计算环境,广泛应用于科学计算、工程设计、数据分析和算法开发等领域。
它提供了强大的数值计算工具和图形绘制功能,并有丰富的库函数和工具箱可供使用。
1.2 MATLAB环境介绍MATLAB的主要界面包括命令窗口、编辑器、工作区和命令历史等。
命令窗口用于交互式执行命令和脚本,编辑器用于编写和编辑脚本文件,工作区用于显示和管理变量,命令历史用于查看和管理执行过的命令。
第二章:MATLAB基本语法2.1 变量和数据类型在MATLAB中,变量可以通过简单的赋值来创建,并且不需要事先声明变量类型。
常见的数据类型包括数值类型(整数、浮点数)、字符类型和逻辑类型(布尔型)等。
MATLAB还提供了复数类型和矩阵类型,具有丰富的数值计算功能。
2.2 运算符和表达式MATLAB支持常见的数学运算符,如加减乘除、取余和乘方等。
此外,还提供了矩阵运算符和逻辑运算符,方便处理矩阵和逻辑表达式。
表达式可以由变量、常数和运算符组合而成,并且支持函数调用。
2.3 控制流程MATLAB提供了条件语句(if-else)、循环语句(for、while)和函数等控制流程结构,以实现不同的程序逻辑。
条件语句根据条件的真假执行不同的代码块,循环语句重复执行一段代码块,函数封装了一段可重复使用的代码。
第三章:MATLAB图形绘制3.1 二维图形绘制MATLAB提供了丰富的函数和工具箱,以绘制各种二维图形,如线图、散点图、柱状图和饼图等。
用户可以自定义图形样式、坐标轴刻度、图例和注释等,以满足不同的数据可视化需求。
3.2 三维图形绘制除了二维图形外,MATLAB还支持绘制三维图形,如曲面图和体积图等。
通过调整视角、设置颜色映射和光照效果,用户可以更直观地表达三维数据的特征和分布情况。
3.3 动态图形绘制MATLAB中的图形绘制功能不仅限于静态图形,还可用于生成动态图形。
《Matlab的简要介绍》课件

欢迎大家来到今天的课程,我们将一起探索Matlab的世界。在本课程中,我 们将介绍Matlab的定义、基础语法、数据类型、绘图、图像处理、工具箱、 应用以及总结等内容。
Matlab的定义
高级编程语言
Matlab是一种高级编程语言, 用于科学计算、数据分析以 及工程应用。
结论
1 对Matlab的总结
Matlab是一种功能强大的科学计算软件,广 泛应用于各个领域。
2 能力提升的建议
要提升对Matlab的使用能力,建议勤练习、 参加培训和查阅官方文档。
ቤተ መጻሕፍቲ ባይዱ
3
控制语句
使用控制语句,如if语句和循环语句,来控制程序的执行流程。
数据类型
数组
数组是一种存储和处理多个元素的数据结构。
矩阵
矩阵是二维数组,用于进行线性代数运算和矩阵操 作。
字符串
字符串是由字符组成的文本,在Matlab中用于存储 和处理文字信息。
结构体
结构体是一种自定义的数据类型,可用于组合不同 类型的数据。
常用工具箱介绍
我们将介绍一些常用的Matlab工具箱,如信号处理 工具箱、统计与机器学习工具箱等。
应用
数学建模
Matlab是进行数学建模和仿 真的强大工具,可应用于物 理、工程和金融等领域。
工程应用
在工程领域,Matlab可用于 控制系统设计、信号处理和 图像处理等。
数据处理
Matlab对于数据处理和分析 也非常有用,可以进行数据 可视化、统计分析和机器学 习等操作。
绘图
二维绘图
Matlab提供了丰富的绘图函数, 可用于绘制折线图、散点图和 条形图等。
三维绘图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2 导弹打击过程仿真 zuijiwent 设 A(0,0) 为一导弹发射点,发现位于 B(0,100) 处 一架敌机沿水平方向逃离,随即发射一枚导弹 予以打击,现已知导弹时刻对准敌机,且速率 为飞机速率的两倍(设飞机速度为1)。 试编程模拟导弹打击敌机 B 的动态过程,并实时给出 飞机和导弹的位置坐标。 若要在敌机飞行距离不超 过60时(我方空域)将其 A 击落,导弹的速率应提高 到多少?
运行MATLAB创建一个或多个窗口
a) 命令区(Command Window)是用户使用的主 要场所,此时,可以输入变量、数组及运算命 令,进行一些简单的运算;用↑↓←→键搜索、 修改以前使用过的命令操作 , 用 clc 清除窗口 ; 用help sqrt ( help input …)寻求有关帮助; b) 编辑区(Editor\Debugger Window)编制各种 M-文件,存盘(Save)、运行(Run)等.
fprintf('k=%.0f A(%.2f,%.2f) B(%.2f,100) d=%.2f\n',k ,A(1),A(2),B(1),d);
end
课程内容
课程的教学 1)通过介绍数学软件-MATLAB,学会数 学软件的基本操作与使用; 2)通过简单的实际问题,运用学过的数学知识 建立数学模型、选择方法并上机实现。
工具箱及命令查询 help topics
在命令区(Command Window)键入 help det help rand help elfun help abs help sqrt help linspace
MATLAB中基本代数运算符
运算 加法: a+b 减法: a-b 乘法: a×b 除法: a÷b 乘幂: 符号 + * / ^ 举例 5+3 5-3 5*3 48/4 5^2=25
先看两个例子
例1 数列极限
1 n lim (1 ) n n
动态显示jixian
MATLAB程序: hold on % 图形迭加 axis([0,100,2,3]); % 设置坐标轴 grid % 加坐标网格 for n=1:90 % 循环操作 an=(1+1/n)^n; % 计算数列值 plot(n,an,'r*'); % 画出坐标点 pause(0.05); % 暂停0.05秒 fprintf('n=%d an=%.4f\n',n,an); % 显示坐标位置 end
《数学实验》课程的考核
小实验以个人为单位;大实验 3 人为一 小组,共同探讨,实验完成后共同填写一份 实验报告上交,批改后给出成绩,最后综合 评定出最终成绩(10分制)。 实验成绩将纳入到所学的高等数学课程的 期末成绩之中,占一
MATLAB是建立在向量、数组和矩阵基础上的 一种分析和仿真工具软件包,包含各种能够进 行常规运算的“工具箱”,如常用的矩阵代数 运算、数组运算、方程求根、优化计算、统计、 小波分析、神经网络以及函数求导积分符号运 算等;同时还提供了编程计算的编程特性,通 过编程可以解决一些复杂的工程问题;也可绘 制二维、三维图形,输出结果可视化。目前, 已成为工程领域中较常用的软件工具包之一。
ab
变量及数组输入
MATLAB的变量及数组均是以向量或矩阵方式存 储的 1:向量方式输入 x=[1,2,3,4,5] %以向量(数组)方式给x赋值 x1=[1 12 –3 4 sqrt(5)]; y=(x(3)+x(5))/2*x(4) %调用x中的元素 z=sqrt(x) %每个元素开方 t=x' %向量x的转置赋给t u=x*t %向量的内积(u为向量x的模的平方)
求方程组Ax=B的解-----------q1.m
A=[2 1 -3; 3 -2 2;5 -3 -1]; B=[5;5;16]; x=A\B
例 矩阵运算------q2
A=[1 2 0;2 5 -1;4 10 -1]; %矩阵输入( A 为3阶矩阵) B=[366;804;351] %列矩阵输入 D=A’ %求A的转置 H=det(A) %求A的行列式 r=rank(A) %计算矩阵A的秩 ni=inv(A) %求A的逆 x=A\B %Ax=B方程组的解 y=inv(A)*B %与x相同 tezhengzhi=eig(A) %求A的特征值 [m,n]=eig(A) %求A的特征值与特征向量 B=poly(A) %求A的特征多项式 round(poly(A)) %round用来对数值取整 rref(A) %计算矩阵A的行最简形
MATLAB程序: k=0; A=[0,0]; %导弹初始位置 B B=[0,100]; %飞机初始位置 v=1; dt=1; %离散时间改变量 d=100; %相距距离 while d>0.5 A plot(A(1),A(2),’r+’); %画导弹位置 hold on plot(B(1),B(2),’b*’); %画飞机位置 pause(0.2); k=k+1; B=B+[v*dt,0]; %飞机移动位置 e=B-A; %导弹指向飞机向量 d=norm(e); e0=e/d; %取向量方向(单位化) A=A+2.0*v*dt*e0; %导弹追击位置
什么是数学实验?
简单讲就是利用计算机和数学软件平 台,一方面,对学习知识过程中的某些 问题进行实验探究、发现规律; 另一方面,结合已掌握的数学(微积 分、代数与几何等)知识,去探究、解 决一些简单实际问题,从而熟悉从数学 建模、解法研究到实验分析的科学研究 的方法。
《数学实验》课程
课程的性质、目的 数学实验是最近几年出现的新课程,其目的 是锻炼动手能力,培养应用数学知识解决实际问 题的意识和能力。 本课程通过介绍数学软件(MATLAB),运用 数学课程所学习的一些知识与方法,对一些简单 的实际问题进行数学建模、解题方法的设计与上 机实践。 课程包括讲课和使用计算机进行实验环节。
构造矩阵的方法------q3
x=[1 2 3 9 3] 直接赋值 y=0:0.5:3 按步长赋值 z=[0 x 1] u=[y;z] 将矩阵y,z合并为一个矩阵 t=linspace(0,2,7) %按分点赋值 v=ones(3) 产生元素全是1的3阶阵 C=eye(3) 产生3阶单位阵 vv=5*ones(3,4) s=zeros(2,4) 产生2行4列的零阵 r=rand(4,4) 随机产生4阶矩阵 B=[ ] 产生空矩阵 g=round(10*rand(5))