首页 西工大matlab知识点整理(详细版本)

西工大matlab知识点整理(详细版本)

举报
开通vip

西工大matlab知识点整理(详细版本)1.p=[2,0,-3,71,-9,13];%建立多项式系数向量x=roots(p);%求根2.a=[2,3,-1;8,2,3;45,3,9];%建立系数矩阵ab=[2;4;23];%建立列向量bx=inv(a)*b3.基本运算sin(45*pi/180)sqrt(2*exp(4.92+0.5)+1)4.常用命令命令含义clc清除命令窗口的显示内容clear清除Matlab工作空间中保存的变量who或whos显示Matlab工作空间中的变量信息dir显示当前工作目录的文件和子目录清单cd显示或设置当前工作目录typ...

西工大matlab知识点整理(详细版本)
1.p=[2,0,-3,71,-9,13];%建立多项式系数向量x=roots(p);%求根2.a=[2,3,-1;8,2,3;45,3,9];%建立系数矩阵ab=[2;4;23];%建立列向量bx=inv(a)*b3.基本运算sin(45*pi/180)sqrt(2*exp(4.92+0.5)+1)4.常用命令命令含义clc清除命令窗口的显示内容clear清除Matlab工作空间中保存的变量who或whos显示Matlab工作空间中的变量信息dir显示当前工作 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 的文件和子目录清单cd显示或设置当前工作目录type显示指定m文件的内容help或doc获取在线帮助quit或exit关闭/推出MATALB5.matlab组成菜单栏、工具栏、文件编辑窗口、命令窗口、工作空间、历史命令窗口、命令 提示 春节期间物业温馨提示小区春节期间温馨提示物业小区春节温馨提示春节物业温馨提示物业春节期间温馨提示 符、Start菜单6.MATLAB提供的帮助信息有两类简单纯文本帮助信息Helplookfor(条件比较宽松)例:inverse窗口式综合帮助信息(文字、公式、图形)Dochelpwin7.符号计算symsxyz%建立符号变量[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)8.求解定积分xxxx53223719130xyzxyzxyz2328234453923求解I=quad('x.*log(1+x)',0,1)或symsxnt(x*log(1+x),0,1)ans=9.多项式曲线拟合x=[1,2,3,4,5,6,7,8,9,10]y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]注:一次多项式拟合:p1=polyfit(x,y,1)三次多项式拟合:p3=polyfit(x,y,3)plot原始数据、一次拟合曲线和三次拟合曲线x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot(x,y,’*’,x2,y1,‘:’,x2,y3)10.复数及其运算MATLAB中复数的表达:z=a+bi,其中a、b为实数。MATLAB把复数作为一个整体,象计算实数一样计算复数。11.矩阵是Matlab最基本的数据对象,并且矩阵的运算是定义在复数域上的。12.Matlab程序控制结构顺序结构分支结构if-then-else语句if<判断语句>语句1endif<判断语句>语句1else语句2endswitch-case语句switch<判断值>case判断值1ln()xxdx10132[1205(25])yxxxInMAByTLA语句1case判断值2语句2…otherwise语句nend循环结构for-end语句for循环控制变量=起始值:步长:终止值循环体endwhile-end语句while<循环判断语句>循环体end其他语句break和continue语句break:跳出循环continue:提前结束当前循环return语句:终止程序try-catch语句:异常处理13.M文件(函数文件)建立、编辑、保存、调用14.创建一维数组变量行:第一种方法:使用方括号“[]”操作符>>a=[13pi3+5*i]%ora=[1,3,pi,3+5*i]a=1.00003.00003.14163.0000+5.0000i第二种方法:使用冒号“:”操作符>>b=1:10%x=Start:Increment:Endb=12345678910第三种方法:利用函数linspace函数linspace的基本语法x=linspace(x1,x2,n)该函数生成一个由n个元素组成的行向量;x1为其第一个元素;x2为其最后一个元素;x1、x2之间元素的间隔=(x2-x1)/(n-1)。如果忽略参数n,则系统默认生成100个元素的行向量键入并执行x=linspace(1,2,5)x=1.00001.25001.50001.75002.0000第四种方法:利用函数logspace列:使用方括号“[]”操作符,使用分号“;”分割行。键入并执行x=[1;2;3]X=12315.创建二维数组变量第一种方法:使用方括号“[]”操作符键入并执行a2=[123;456;789]a2=123456789第二种方法:函数方法函数ones(生成全1矩阵)、zeros(生成全0矩阵)、reshapereshape的使用演示>>a=-4:4a=-4-3-2-101234>>b=reshape(a,3,3)b=-4-12-303-214单下标的使用>>a=zeros(2,5);>>a(:)=-4:5a=-4-2024-3-1135注意数组的排列顺序。16.元素与子数组的寻访与赋值一维数组元素与子数组的寻访与赋值:>>a=linspace(1,10,5)a=1.00003.25005.50007.750010.0000>>a(1:3)%寻访前3个元素组成的子数组>>a([125])%寻访a的第1、2、5个元素组成的子数组>>a(3:-1:1)%由前3个元素倒序构成的子数组>>a([12355321])ans=1.00003.25005.500010.000010.00005.50003.25001.0000数组元素可以被任意重复访问,构成长度大于原数组的新数组。二维数组元素与子数组的寻访与赋值:>>a_2=zeros(2,4)%创建2x4的全0数组a_2=00000000>>a_2(:)=1:8a_2=13572468>>a_2([258])%单下标方式寻访多个元素ans=258>>a_2([258])=[102030]a_2=13207104630>>a_2(:,[23])=ones(2)%双下标方式寻访并修改a_2=1117101130size函数返回变量的大小,即变量数组的行列数length函数返回变量数组的最大维数sub2ind函数-双下标转换为单下标>>sub2ind(size(A),2,1,2)ind2sub函数-双下标转换为单下标>>[I,J]=ind2sub(size(b),IND)17.矩阵算术运算运算运算符含义说明加+相应元素相加减-相应元素相减乘*矩阵乘法点乘.*相应元素相乘幂^矩阵幂运算点幂.^相应元素进行幂运算左除或右除\或/矩阵左除或右除左点除或右点除.\或./A的元素被B的对应元素除18.Matlab提供了6种关系运算符:<、>、<=、>=、==、~=(不等于)P=rem(A,3)==0%被3除,求余Matlab提供了3种逻辑运算符:&(与)、|(或)、~(非)算术运算优先级最高,逻辑运算优先级最低。19.求向量的最大值和最小值:(1)y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值;(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。求矩阵的最大值和最小值:求矩阵A的最大值的函数有3种调用格式,分别是:(1)max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值;(2)[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号;(3)max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。求最小值的函数是min,其用法和max完全相同。求和与求积:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。平均值与中值:求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为:mean(X):返回向量X的算术平均值。median(X):返回向量X的中值。mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。median(A):返回一个行向量,其第i个元素是A的第i列的中值。mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。20.字符串1)Matlab用「单引号」来界定一个字符串。可以使用方括号“[]”直接连接多个字符串变量,得到一个新字符串变量。str1=‘IlikeMATLAB,’;%建立字串变量str1str2='JavaScript,andPerl!';%建立字串变量str2str3=[str1str2]%直接连接str1及str2,以建立str3str3=IlikeMATLAB,JavaScript,andPerl!2)如要输入的字符串中有单引号,则由两个连续的单引号来表示。若要计算字符串变量的长度(即组成字符串的个数),可用length指令。sentence='I''vegotadate!';length(sentence)%计算字字符串sentence的长度3)double指令:查看字符串变量的存储內容(即ASCII内码)char指令:将ASCII內码转换为字符串形式sentence='I''vegotadate!';sentenceAscii=double(sentence)%查看sentence的ASCII码sentence2=char(sentenceAscii)%将ASCII码恢复成字符串形式4)class或ischar指令:可以用来判断一个变量的类型或它是否为字符串变量。chinese=‘今日事,今日毕';out1=class(chinese)%out1的值是“char”x=chinese+1;out2=ischar(x)%out2的值是0,代表x不是字符串变量21.一个字符数组变量存储多行字符串1)第一种方法是使用二维字符数组(TwoDimensionalCharacterArrays)必须先确认每个字符串(即每一行)的长度一样,否则就必须在短字符串结尾补齐空格departments=[‘ee’;‘cs’;‘econ’]注意上述语句中空格字符的使用。departments=eecsecon2)用char指令存储多字符串departments=char(‘ee’,‘cs’,‘econ’)%注意空格及「,」的使用3)从二维字符数组访问字符串时,切记要使用deblank指令来清除字符串尾部的空格字符departments=char('ee','cs','econ');dept1=departments(1,:);%(1,:)代表第一行的全部元素dept2=deblank(dept1);%使用deblank指令清除尾部的空格字符len1=length(dept1)%显示变量dept1的长度=4len2=length(dept2)%显示变量dept2的长度=222.字符串的操作strcmp指令:用于比较字符串的內容的异同不相等返回0,相等返回1out1=strcmp(str1,str2)%比较字符串str1和str223.空数组(emptyarray)有一维是0的数组即为空数组空数组不占据存储空间最简单的空数组:0x0的矩阵复杂的空数组:0x5or10x0例如:>>a=[];b=ones(0,5);察看空数组:>>a,b,c%orwhosabc空数组并非全0数组数组维数的减小删除数组的某列和行>>a=magic(4),a(:,2)=[]删除(2-D、3-D)数组的单个元素使用“全下标”方式,不能删除单个元素>>a(1,2)=[]%系统会警告信息使用“单下标”可以删除单个元素>>a(2:4)=[]%数组a将变为向量使用“[]”同样可以减小字符数组的维数24.元胞数组(cellarray)1)赋值语句创建元胞数组元胞索引(cellindexing)方式格式:a(1,2)={………}元胞内容索引(contentindexing)方式格式:a{1,2}=[…]or‘…’直接用大括号一次把所有元素括起来b={'JamesBond',[12;34;56];pi,ones(5)}2)Cellindexing方式创建元胞数组>>a(1,1)={[143;058;729]};>>a(1,2)={'AnneSmith'};>>a(2,1)={3+7i};>>a(2,2)={-pi:pi/10:pi};“{}”表示空元胞数组3)Contentindexing方式创建元胞数组>>b{1,1}='JamesBond';>>b{1,2}=[12;34;56];>>b{2,1}=pi;>>b{2,2}=zeros(5);4)元胞数组的连接c=[ab]%orc=[a;b]5)cell函数创建元胞数组>>b=cell(2,3)b=[][][][][][]>>whosbNameSizeBytesClassb2x324cellarray注意:每个cell占有4个字节的空间6)celldisp显示元胞数组的全部内容(3种)>>a>>celldisp(a)%显示全部内容>>cellplot(a)%图形方式显示元胞数组的结构使用内容下标索引显示指定元胞的数据格式:var_name{row_index,column_index}或var_name{:}7)读取元胞数组中的内容读取上述b元胞数组的第1行、第2列元胞的内容>>b,d=b{1,2}读取b{1,2}的第3行、第1列的数据。>>e=b{1,2}(3,1)读取元胞数组a第1行的所有元胞。>>f=a(1,:)删除元胞数组a第1行的所有元胞。>>a(1,:)=[]Note:这里使用的是元胞索引(cellindexing),而不是内容索引(contentindexing)25.结构与结构数组的概念结构(structure)由字段(或域,fields)组成每个字段可以是任一种Matlab数据类型的数据或变量与C语言的结构类型相似结构数组(structurearray)多个结构构成结构数组(structurearray)结构数组的元素就是一个结构26.结构数组变量的创建1)方法一:直接键入>>clearstudent%清除student变量>>student.name='张三';%加入name字段>>student.id='mr871912';%加入id字段>>student.scores=[58,75,62];%加入scores字段>>student%显示结构变量的数据student=name:'张三'id:'mr871912'scores:[58,75,62]此时,Matlab视student为一个1x1结构数组第二个学生的信息建立>>student(2).name='张宁';%加入name字段>>student(2).id='mr871913';%加入id字段>>student(2).scores=[68,85,92];%加入scores字段此时,student变量已成为一个1x2的结构数组2)方法二:struc函数>>clearstudent>>student=struct('name','张听说','scores',[5060]);>>student(2)=struct('name','张廷安','scores',[6070]);>>student(1),student(2)%显示student(1),student(2)ans=name:'张听说'scores:[5060]ans=name:'张廷安'scores:[6070]或使用struct创建结构数组变量(一次建立多个元素)>>clearstudent>>student=struct('name',{'张听说','张廷安'},'scores',{[5060],[6070]});>>student(1),student(2)%显示student(1),…ans=name:'张听说'scores:[5060]ans=name:'张廷安'scores:[6070]3)结构数组嵌套(nested)结构数组中结构的字段还可以是结构。4)访问结构数组变量的内容cat函数:排列结构数组某字段的值格式:cat(dim,structurefield)dim=1,竖排;dim=2,横排Exam:>>cat(1,student.scores)ans=55606580>>cat(2,student.scores)ans=556065805)计算平均值(使用mean函数)计算每次考试的平均值>>average1=mean(cat(1,student.scores))average1=607027.plot指令的基本调用格式(1)plot(x)x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线(2)plot(x,y)x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)或t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).^2;plot(x,y)(3)plot(x1,y1,x2,y2,…)绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。(4)多次叠绘多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。holdon保持当前坐标轴和图形,并可以接受下一次绘制。holdoff取消当前坐标轴和图形保持,这种状态下,调用plot绘制完全新的图形,不保留以前的坐标格式、曲线。(5)双纵坐标:plotyy指令plotyy指令调用格式:plotyy(x1,y1,x2,y2)x1-y1曲线y轴在左,x2-y2曲线y轴在右。(6)多子图subplot(m,n,k)使(m*n)幅子图中第k个子图成为当前图subplot(‘postion’,[left,bottom,width,height])在指定的位置上开辟子图,并成为当前图(7)分格线与grid指令gridon画出分格线gridoff不画分格线MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。(8)坐标框boxon控制加边框线boxoff控制不加边框线(9)刻度设置指令及格式:set(gca,‘xtick’,xs,‘ytick’,ys)xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。28.图形标识(1)图形标识包括:图名(title)坐标轴名(xlabel、ylabel)图形文本注释(text)图例(legend)(2)简捷使用格式title(s)%s为字符串变量或常量xlabel(s)ylabel(s)legend(s)text(x,y,s)%指定坐标(x,y)处加注文字(3)直方图(柱形图)bar垂直直方图累计式year=[199019952000];people=[90.7281.6254.8;70.6271323.7;73.9214.6326.5];bar(year,people,‘stack’);legend(‘\fontsize{6}第一产业’,‘\fontsize{6}第二产业’,‘\fontsize{6}第三产业');分组式bar(year,people,‘group’);%分组式直方图legend(‘\fontsize{6}第一产业’,‘\fontsize{6}第二产业’,‘\fontsize{6}第三产业');水平直方图累计式barh(year,people,‘stack’);%累积式直方图legend(‘\fontsize{6}first’,‘\fontsize{6}second’,‘\fontsize{6}third');分组式barh(year,people,‘group’);%分组式直方图legend(‘\fontsize{6}first’,‘\fontsize{6}second’,‘\fontsize{6}third');(4)饼图指令pie饼图指令pie用来表示各元素占总和的百分数。该指令第二输入变量是与第一变量同长的0-1向量,1使对应扇块突出。a=[1,1.6,1.2,0.8,2.1];subplot(1,2,1),pie(a,[10100]),legend({'1','2','3','4','5'})subplot(1,2,2),b=int8(a==min(a))pie3(a,b)colormap(cool)(5)离散杆图stem余弦波的采样信号图t=linspace(-2*pi,2*pi,20);h=stem(t,cos(t));(6)填充图subplot(222);fill(x,y,'r');阶梯图subplot(223);stairs(x,y,'b');(7)极坐标图polar函数用来绘制极坐标图,其调用格式为:polar(theta,rho,选项)例:绘制ρ=sin(2θ)cos(2θ)的图形theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,'k');29.3-D数据可视化之三维绘图的基本操作(1)三维线图指令plot3三维绘图指令中,plot3最易于理解,它的使用格式与plot十分相似,只是对应第3维空间的参量。plot3(x,y,z,'b-',x,y,z,'bd');(2)三维网线图(mesh)和曲面图(surf)画函数z=f(x,y)所代表的三维空间曲面,需要做以下的数据准备工作:确定自变量的取值范围和取值间隔。x=x1:dx:x2;y=y1:dy:y2;构成x-y平面上的自变量采样“格点”矩阵。利用MATLAB指令meshgrid产生“格点”矩阵[xa,ya]=meshgrid(x,y);计算函数在自变量采样“格点”上的函数值,即z=f(x,y)。网线图、曲面图绘制。例如:绘制函数z=x^2+y^2的曲面x=-4:4;y=x;[x,y]=meshgrid(x,y);%生成x-y坐标“格点”矩阵z=x.^2+y.^2;%计算格点上的函数值subplot(1,2,1),mesh(x,y,z);%三维网格图subplot(1,2,2),surf(x,y,z);%三维曲面图colormap(hot);30.图像文件操作(1)图像文件的读写与图像显示imread指令读取图像文件(BMP,GIF,PNG,JPEG,andTIFF)imshow指令显示图像imwrite指令保存图像例:读取图像文件img1=imread(‘mudan.jpg');%Loadimagedataimg2=imread('eight.tif');显示图像:imshow(img1);%Displayimagelighter=2*img1;imwrite(lighter,'mysaved.jpg')保存图像查看保存结果>>dirmysaved.*(2)彩色图像转换为灰度图像black=rgb2gray(img1);imshow(black)图像的缩放zoomon(3)图像特征提取imag_edge1=edge(img2,‘sobel’);%sobel边缘提取算法subplot(121),imshow(imag_edge1)imag_edge2=edge(img2,'canny');%canny边缘提取算法subplot(122),imshow(imag_edge2)31.M文件的分类(1)用Matlab语言编写的程序,称为M文件。是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。M文件根据调用方式的不同分为两类:命令文件(ScriptFile)函数文件(FunctionFile)它们的扩展名都是.m(2)命令文件和函数文件的区别命令文件没有输入参数,也不返回输出参数;函数文件可以带输入参数,也可以返回输出参数。命令文件对工作空间中的变量进行操作,文件中所有命令的执行结果也返回工作空间中;函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量也被清除。命令文件可以直接运行;函数文件不能直接运行,要以函数调用的方式来调用它。32.程序控制结构(1)顺序结构数据的输入A=input(提示信息,选项);A=input(‘输入A矩阵’);如果在input函数调用时采用’s’选项,则允许用户输入一个字符串。例:xm=input(‘What’’syourname?’,’s’);数据的输出命令窗口输出函数主要有disp函数,其调用格式为:disp(输出项)其中输出项既可以为字符串,也可以为矩阵。程序的暂停程序执行过程中暂停,可用pause函数,其调用格式为:pause(延迟描述)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可按Ctrl+C键。(2)选择结构Matlab用于实现选择结构的语句有if语句,switch语句和try语句。if语句单分支if语句if条件语句组End双分支if语句if条件语句组1else语句组2End多分支if语句if条件1语句组1elseif条件2语句组2…elseif条件m语句组melse语句组nendswitch语句switch表达式case表达式1语句组1case表达式2语句组2…case表达式m语句组motherwise语句组nEndtry语句try语句组1catch语句组2End(3)循环结构for语句for语句的格式为:for循环变量=表达式1:表达式2:表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。while语句while条件循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。break语句和continur语句break语句用于终止循环的执行continue语句控制跳过循环体中的某些语句。33.函数文件(1)函数文件的基本结构函数文件由function语句引导,其基本结构为:function输出形参表=函数名(输入形参表)注释说明部分函数体语句其中,以function开头的一行为引导行,表示该M文件是一个函数文件。当输出形参多于一个时,应该用方括号括起来。说明:关于函数文件名函数文件名通常由函数名再加上扩展名.m组成。当函数文件名与函数名不同时,Matlab将忽略函数名而确认文件名因此调用时使用函数文件名。关于注释说明部分注释说明包括3部分:紧随引导行之后以%开头的第一注释行。这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor关键词查询和help在线帮助时使用。第一注释行及之后连续的注释行。通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。与在线帮助文本相隔一空行的注释行。包括函数文件编写和修改的信息,如作者和版本等。(如果在函数文件中插入了return语句,则执行到该语句就结束函数的执行, 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 转至调用该函数的位置。通常也不使用return语句。)例如:function[s,p]=fcircle(r)%FCIRCLEcalculatetheareaandperimeterofacircleofradiir%r圆半径%s圆面积%p圆周长%2006年2月30日编s=pi*r*r;p=2*pi*r;将以上函数文件以文件名fcircle.m保存,然后在命令窗口调用。[s,p]=fcircle(10)输出结果是:s=314.1593p=62.8319(2)函数调用函数调用的一般格式是:[输出实参表]=函数名(输入实参表)注意:函数调用时,各实参出现的顺序、个数,应与函数定义时相同。(3)函数参数的可调性Matlab在函数调用上有一个与一般高级语言不同之处:函数所传递参数数目的可调性,即参数的数量可以改变。在调用函数时,Matlab用两个预定义变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。(4)全局变量与局部变量函数文件中的变量是局部变量。全局变量的作用域是整个Matlab的工作空间,所有函数都可以对它进行存取和修改。全局变量用global命令定义,格式为:global变量名34.程序调试一般说来,应用程序的错误有两类,一类是语法错误,另一类是运行时的错误。(1)Matlab调试菜单控制单步运行step:单步运行,不进入函数;stepin:单步运行,进入函数;stepout:停止单步运行;saveandrun:存储文件并开始运行。断点操作stopiferror/warnings:在程序执行出现错误或警告时,停止程序运行,进入调试状态。35.Matlab矩阵 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 与处理(1)通用的特殊矩阵常用的产生通用特殊矩阵的函数有:zeros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生0~1间均匀分布的随机矩阵。randn:产生均值为0,方差为1的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 正态分布随机矩阵。(2)对角阵与三角阵提取矩阵的对角线元素函数:diagA=[1,2,3;4,5,6];D=diag(A)D=15diag函数还有一种形式:diag(A,k)提取第k条对角线的元素。D1=diag(A,1)D=26构造对角矩阵如果V是一个m个元素的向量,diag(V)将产生一个m×m对角矩阵,其主对角线元素即向量V为的元素。(2)矩阵求逆与线性方程组求解矩阵的逆:求方阵A的逆矩阵可调用函数inv(A)。求解方程组:x=inv(A)*b%x=A\b,也可以运用左除运算符求解。(3)矩阵行列式值把一个方程看做一个行列式,并按行列式的规则求值,称为行列式的值。在Matlab中,使用函数det(A)得到。36.多项式(polynomial)(1)多项式的MATLAB表达:多项式x4-12x3+25x+116由行向量:p=[1-12025116]表示。(2)求解多项式的根:roots指令求解多项式x4-12x3+25x+116的根>>p=[1-12025116]p=1-12025116>>r=roots(p)(3)已知多项式的根,求解多项式>>pp=poly(r)pp=1.0000-12.0000-0.000025.0000116.0000即:x4-12x3+25x+116(4)多项式的乘法(conv指令)多项式a(x)=x3+2x2+3x+4和b(x)=x3+4x2+9x+16的乘积。>>a=[1234];b=[14916];>>c=conv(a,b)c=162050758464两个以上的多项式的乘法需要重复使用conv.(5)多项式加法:MATLAB没有提供进行加法运算的函数。如果两个多项式向量大小相同,标准的数组加法有效。把多项式a(x)与上面给出的b(x)相加。>>d=a+b当两个多项式阶次不同,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次。(6)多项式的除法(deconv)c(x)=x6+6x5+20x4+50x3+75x2+84x+64除以b(x)=x3+4x2+9x+16>>c=[162050758464];>>b=[14916];>>[q,r]=deconv(c,b)q=1234r=0000000(7)多项式的导数(polyder)求b(x)=x3+4x2+9x+16的导数。>>b=[14916];>>d=polyder(b)d=389结果为:3x2+8x+9另外两种形式为:p=polyder(P,Q):求P*Q的导函数[p,q]=polyder(P,Q):求P/Q的导函数,导数分子存入p,分母存入q(8)多项式的估值(polyval)绘制p(x)=x3+4x2-7x-10在[-1,3]段上的曲线。x=linspace(-1,3);%choose100datapointsbetween-1and3.p=[14-7-10];v=polyval(p,x);plot(x,v);title('x^{3}+4x^{2}-7x-10');xlabel('x')(9)MATLAB中没有直接提供数值导数的函数,只有计算向前差分的函数diff,其调用格式为:DX=diff(X)计算向量X的向前差分DX=diff(X,n)计算向量X的n阶向前差分例如:f=inline(‘sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2’);%内联函数x=-3:0.01:3;dx=diff(f([x,3.01]))/0.01;%根据定义式求导数plot(x,dx)(10)数值积分常用积分指令:quad和quadl。一般说来,quadl比quad更有效。具体调用格式如下:q=quadl(fun,a,b)q=quadl(fun,a,b,tol)q=quadl(fun,a,b,tol,trace)[q,fcnt]=quadl(fun,a,b,...)输入量fun为被积函数的句柄。输入量a,b分别是积分的下限、和上限,都必须是确定的数值;前3个输入参数是调用积分指令所必须的,其他可以缺省;输入量tol是一个标量,控制绝对误差;输入量trace为非0值时,将随积分的进程逐点画出被积分函数;输出参数fcnt返回函数的执行次数。Note:quad的调用格式与quadl相同求定积分MATLAB指令quad和quadl求积分>>fun=inline(‘exp(-x.*x)’,‘x’);%数组乘符号.*的采用是必须的>>Isim=quad(fun,0,1),I8=quadl(fun,0,1)Isim=0.7468I8=0.7468(11)元素排序Matlab中对向量X排序的函数是sort(X),函数返回一个对X中的元素按升序排列的新向量。sort函数也可以对矩阵A的各列(或行)重新排序,其调用格式为:[Y,I]=sort(A,dim)dim=1,按列排序;dim=2,按行排序,Y是排序后的矩阵,I记录Y中的元素在A中的位置。命令如下:A=[1,-8,5;4,12,6;13,7,-13];sort(A)ans=1-8-1347513126-sort(-A,2)%对A的每行按降序排列ans=51-81264137-13(12)数据插值一维数据插值:被插值函数有一个单变量。采用的方法有:线性方法、最近方法、三次样条和三次插值。在Matlab中实现这些插值的函数是interp1,其调用格式如下:Y1=interp1(X,Y,X1,method)函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值;X1是一个向量或标量,描述欲插值的点;Y1是一个与X1等长的插值结果。method是插值方法,允许的取值为:1)‘linear’:线性插值。默认的插值方式。它是把插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。210xIedx2)‘nearest’:最近点插值。根据已知插值点与已知数据点的远近程度进行插值。插值点优先选择较近的数据点进行插值。3)‘cubic’:3次多项式插值。根据已知数据求出一个3次多项式,然后根据该多项式进行插值。4)‘spline’:3次样条插值。指在每个分段内构造一个3次多项式,使其满足插值条件外,在各节点处具有光滑的条件。(13)曲线拟合曲线拟合的实现:在matlab中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出点上的函数近似值。polyfit函数的调用格式为:[P,S]=polyfit(X,Y,m)函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X、Y是两个等长的向量,P是一个长度为m+1的向量,P的元素是多项式系数。polyval函数的功能是按多项式的系数计算x点多项式的值。37.信号的产生(1)单位采样序列x=zeros(1,n);x(k)=1;(2)单位阶跃序列x=ones(1,n);(3)正弦序列n=0:N-1;x=sin(2*pi*f*n*Ts+fai);(4)复正弦序列n=0:N-1;x=exp(j*w*n);(5)指数序列n=1:N;x=a.^n;(6)随机序列rand(m,n)%产生m行,n列的在[0,1]上服从均匀分布的随机数矩阵randn(m,n)%产生均值为0,方差为1的高斯随机序列(7)方波信号x=square(t,duty);产生周期为2*pi,幅值为正负1的方波信号,其中duty为正幅值部分占周期的百分数(8)三角波(锯齿波)sawtooth(t,width);产生周期为2*pi幅值为正负1的三角波,width为宽度,取0-1之间的数sawtooth函数类似于sin函数,其中width用于调整三角波峰值位置,sawtooth(t,1)等价于sawtooth(t)。(9)sinc函数信号y=sinc(x);产生周期为2*pi,随x的增加衰减震荡的偶函数,在n*pi处值为零38.信号的运算(1)信号的延迟给定信号x(n),若信号y1(n)、y2(n)分别定义为:y1(n)=x(n-k)y2(n)=x(n+k)那么,y1(n)是整个x(n)在时间轴上右移k个时间单位所得到的新序列,y2(n)是整个x(n)在时间轴上左移k个时间单位所得到的结果。编程实现:function[y,n]=sig_shift(x,m,n0)m为输入x的下标;n0为延迟单位n=m+n0;y=x;(2)相加、相乘x(n)=x1(n)+x2(n);x(n)=x1(n)*x2(n)当两个向量相乘时,若用.*表示数组相乘,此时,x1中对应元素与x2中对应元素相乘,所得结果作为结果数组(矩阵),要求两原始数组中元素个数相同,如果采用*是进行向量(矩阵)的乘法,相加时要求两原始数组中元素个数相同。(3)信号的能量及功率信号的能量有如下表示形式:E=sum(abs(x).^2);信号的功率有如下表示形式:E=sum(abs(x).^2)/length(x);(4)信号的折叠信号折叠就是对x(n)每一项对n=0的纵坐标进行折叠,即:y(n)=x(-n)y(n)与x(n)关于n=0对称;y=fliplr(x);n=-fliplr(n);在实际应用中,fliplr的主要作用是把序列倒转(5)信号的卷积Matlab提供了内部函数conv来实现两个有限长序列的卷积,该函数假定两个序列的是从n=0开始的。(6)信号的相关1)两个序列x(n)和y(n)的相关可以看作是x(n)与y(-n)的卷积。同理,信号x(n)的自相关即为x(n)与x(-n)的卷积。2)xcorr(x)或xcorr(x,y)39.差分方程与Z变换(1)离散系统的时域表示系统的单位抽样信号的响应可以通过filter函数和impz函数实现。1)filter函数系统的单位抽样响应为:h=filter(b,a,x),b为分母,a为分子,x为输入信号2)impz函数实现(2)离散系统的频率响应Matlab中的freqz函数用来计算由a,b构成系统的频率响应。[h,f]=freqz(b,a,n,fs)(3)快速傅里叶变换在matlab中实现fft很简单,只需要通过命令fft来实现,这里需要注意的是采样频率不要太高,否则频谱的信息被掩盖。另外,计算所得的序列中第k点所对应的实际频率为,f=k*fs/N,其中N为进行傅利叶变换的点数,fs为采样频率,一般取信号最大频率的3-5倍。(4)数字滤波器的设计1)巴特沃思数字滤波器的设计[b,a]=butter(n,wn);[b,a]=butter(n,wn,’ftype’);……2)切比雪夫法设计滤波器[b,a]=cheby1(n,Rp,wn);[b,a]=cheby1(n,Rp,wn,’ftype’);……
本文档为【西工大matlab知识点整理(详细版本)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥10.8 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
壹笑先生
致力于服务广大学子、教师、社考人员等一份学习的资料!
格式:pdf
大小:286KB
软件:PDF阅读器
页数:0
分类:其他高等教育
上传时间:2021-01-26
浏览量:19