2020/1/1511.2MATLAB的基本操作1.2.1MATLAB语言的结构1.2.2MATLAB的磁盘文件1.2.3MATLAB的库函数1.2.4外部程序的调用1.2.5输入与输出函数1.2.6数值显示格式2020/1/1521.2.1MATLAB语言的结构MATLAB命令窗口就是MATLAB语言的工作空间,因为各种功能的执行必须在此窗口下才能实现。在这种环境下输入的MATLAB语句称为窗口命令,就是在上述环境下输入的MATLAB语句,并直接执行它们完成相应的运算及绘图等。2020/1/153赋值语句MATLAB的赋值语句有两种使用格式:(1)变量=表达式将右边的表达式的值赋给左边的变量;当一次返回多个结果时,左边的变量名用[]括起来,并且每个变量之间用逗号分开其中表达式是用运算符将有关运算量(字符、函数、变量名)连接起来的式子,其结果是一个矩阵(2)表达式将表达式的值赋给MATLAB的预定义变量ans。2020/1/154变量变量无须事先定义,一个变量以其名称在语句命令中第一次出现而定义运算表达式不允许有未定义的变量;不需要预先定义变量的类型,它会自动生成变量,并根据变量的操作确定其类型;变量的命名规则:区分大小写,以英文字母开始,不能使用空格和标点,长度不能超过31位,某些常数也可以作为变量使用,如i;2020/1/155常量已预先定义其数值的变量,默认的常量名称说明pi圆周率INF(inf)无穷大NaN(nan)代表不定值(即1/0)realmax最大的正实数realmin最小的正实数eps浮点数的相对误差i(j)虚数单位nargin函数实际输入参数个数nargout函数实际输出参数个数ANS(ans)默认变量名,以应答最近一次操作运算结果2020/1/156在MATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))其中pi和i都是MATLAB预先定义的变量,分别代表代表圆周率π和虚数单位。输出结果是:z=-0.3488+0.3286i例计算表达式的值,并显示计算结果。2020/1/157内存变量文件MATLAB工作空间中的变量在退出MATLAB时会丢失。用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为:save文件名[变量名表][-append][-ascii]load文件名[变量名表][-ascii]2020/1/158注意!不能使用逗号,不同变量之间只能用空格来分隔文件名会自动地使用扩展名.mat例将变量a,b,c保存到mydatSavemydateabc若要按照ASCII码的格式来存储数据,则要加上参数-ascii若要获得高精度数据用-ascii-double2020/1/159who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息clear命令用于删除MATLAB工作空间中的变量clear%清除内存中的全部变量Cleara%清除内存中的变量aloadsafx%把saf.mat文件中的x变量装入内存who%检查内存中有什么变量2020/1/1510内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。2020/1/1511数据的存取%例1-1:数据的存取。x=[1,2]%输入数据mkdir('c:\','my_dir');%在C盘上创建目录my_dircdc:\my_dir%使c:\my_dir成为当前目录savesafx%选择内存中的x变量保存为saf.mat文件dir%显示目录上的文件2020/1/15121.2.2MATLAB的磁盘文件文本文件,全局变量例:求函数在x=-4处的值建立文本文件myfile.m%myfile.m%Thisisanm-fileforcalculatessqrt(abs(x))+x.^3x1=abs(x)x2=sqrt(x1)+x.^3y=x23xxy2020/1/1513M文件仅靠一条一条地输入语句,很难实现复杂功能,为了实现诸如循环、条件、分支等功能,MATLAB利用了m文件,m文件是由一系列的MATLAB语句组成的MATLAB可以认为是一种解释性语言,用户可在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB语言编写的m文件名,或者结合起来使用MATLAB语言=窗口命令+m文件2020/1/1514函数名含义函数名含义abs(x)数的绝对值或向量的长度rat(x)实数x化为分数表示sqrt(x)开平方rats(x)实数x化为多项分数展开angle(z)复数z的相角rem(x,y)x除以y的余数real(z)复数z的实部gcd(x,y)最大公约数image(z)复数z的虚部lcm(x,y)最小公倍数conj(z)复数z的共轭复数log10(x)10为底的对数round(x)四舍五入至最近整数log2(x)2为底的对数fix(x)无论正负,舍去正小数至最近整数log(x)自然对数,e为底floor(x)地板函数,舍去正小数至最近整数pow2(x)2的指数ceil(x)天花板函数,加入正小数至最近整数exp(x)自然指数sign(x)符号函数1.2.3MATLAB的库函数2020/1/1515常用三角函数sin(x)正弦函数sinh(x)超越正弦函数cos(x)余弦函数cosh(x)超越余弦函数tan(x)正切函数tanh(x)超越正切函数asin(x)反正弦函数asinh(x)反超越正弦函数acos(x)反余弦函数acosh(x)反超越余弦函数atan(x)反正切函数atanh(x)反超越正切函数atan2(x,y)四象限的反正切函数2020/1/1516常用向量运算函数min(x)向量x的元素的最小数norm(x)向量x的欧氏长度max(x)向量x的元素的最大数sum(x)向量x的元素总合mean(x)向量x的元素的平均值prod(x)向量x的元素总乘积median(x)向量x的元素的中位数cumsum(x)向量x的累计元素总合std(x)向量x的元素的标准差cumprod(x)向量x的累计元素总乘积diff(x)向量x的相邻元素的差dot(x,y)向量x和y的内积sort(x)对向量x的元素排序cross(x,y)向量x和y的外积length(x)向量x的元素个数2020/1/15171.2.4外部程序调用允许在命令窗口中调用可执行文件,方法是在提示符下键入!后面直接跟文件名即可。也可以采用此方法来使用DOS命令,如!Copywhat列出当前目录下所有的m文件typemyfile在命令窗口显示文件的内容dir列出当前目录下所有的文件deletemyfile删除文件ls同上cdpath进入目录2020/1/15181.2.5输入与输出函数输入函数变量名=input(提示信息,选项)例:A=input(‘EntermatrixA=’);输出函数disp(变量名)例:s=‘HelloWorld’;disp(s)文件打开函数文件名柄=fopen(文件名,文件类型)例:myf=fopen(‘myfile.m’,’r’);r表示只读,a表示可添加2020/1/1519fread()或fscanf()可从中读取数据,fclose可关闭文件Int2str()将整形数据转换成字符串形式。例:cstr=int2str(n)还有num2str()给绘图的图形加标题title([‘’])2020/1/15201.2.6变量的显示MATLAB语句执行的结果可以在屏幕上显示,同时赋值给指定的变量或ans;显示的格式由format命令控制;MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format格式符其中格式符决定数据的输出格式2020/1/1521MATLAB的数据显示格式格式含义format(short)短格式(5位定点数)formatlong长格式(15位定点数)formatshorte短格式e方式formatlonge长格式e方式formatbank2位十进制formathex十六进制格式2020/1/15221.3MATLAB的矩阵运算标量,1*1矩阵;矢量,n*1矩阵;多项式,系数矩阵确定;数组,输入形式和书写方法和矩阵是相同的;数组的运算,对应元素的运算2020/1/15231.3.1矩阵的实现矩阵的元素在‘[]’中;同行之间元素用空格或逗号隔开;行与行之间用分号或回车符;对于较大的矩阵,可以用回车键代替分号,对同一行的内容,也可用续行符号(…)把一行的内容分两行来输入;尺寸不必预先定义;矩阵元素可以是数值,变量,表达式函数。2020/1/1524(1)简单矩阵的输入最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。A=[123;345;342]y=[sin(pi/3),cos(pi/6);log(20),exp(2)]用size()函数可以测取一个矩阵的维数,向量用length(),对矩阵用length()意max(size())2020/1/1525【例1】已知矩阵A和C分别为:在MATLAB中可以采用下面的指令来表示:A=[1,2,3;4,5,6]C=[4;5;6]654321A654C2020/1/1526【例2】如果要给变量A赋矩阵为:可以在MATLAB的命令窗口中输入:A=[1,2,3;4,5,6;7,8,9]显示结果为:A=123456789987654321A2020/1/1527利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。例利用M文件建立MYMAT矩阵。(1)启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。(3)在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。2020/1/1528利用函数创建矩阵对于一些特殊的矩阵,可以利用内部函数或自定义函数创建矩阵x=0:pi/4:2*pi;y=sin(x)2020/1/1529(2)矩阵的元素允许把矩阵作为元素来建立新的矩阵;C=[A;[101112]]允许对矩阵的单个元素进行赋值和操作;A(2,3)=10如果给出的行数或列数大于原矩阵的范围,则自动扩展原矩阵,并将未赋值的元素置为0;A(4,5)=212020/1/1530A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩