资源描述
MATLAB程序设计语言,任课教师:李靖博士(讲师),Email:jli,研究方向:无线通信,上机安排,日期:3-21,4-4,4-18,5-9,5-23时段:18:00至22:00机房:E楼205要求:每次上机找科代表签到!,课程安排,Chapter1Matlab系统概述Chapter2Matlab基本操作Chapter3Matlab图形系统Chapter4Matlab程序设计Chapter5Matlab基本应用领域Chapter6数据阵列类型与结构Chapter7字符串处理,Chapter2Matlab基本操作,表达式矩阵基础矩阵产生和操作逻辑和关系运算操作符和特殊字符基本矩阵和矩阵操作基本数学函数逻辑函数,表达式,变量数值函数操作符,变量,变量名可以包含下划线、字符、数字,但不能为空格符、标点区分大小写字母,即A和a是不同的变量的第一个字符必须为英文字母,而且不能超过31个字符。通过file-preferences-可设置字体大小,预定义变量,ans预设的计算结果的变量名epsMATLAB定义的正的极小值=2.2204e-16pi内建的值Inf正无穷大(1/0)NaN表示不定值(Inf/Inf或0/0)i或j虚数单位(注意i和j也可以做变量)nargin函数输入参数个数nargout函数输出参数个数realmax最大的正实数realmin最小的正实数flops浮点运算次数,数值,十进制:3,8,-39科学计数法:1.6e-21,-3.24e20复数:-4+3.6j,7803.2e2i浮点数:范围在10-30810308MATLAB的所有计算均在双精度下进行,可用format命令来控制不同的显示格式,如10*pi,函数,函数分类:内部函数、Toolboxes中实用函数、用户自定义函数。函数用法:1)嵌套:x=sqrt(log(z)2)多输入:theta=atah2(y,x)3)多输出:y,i=max(x)函数的具体用法可通过help命令得到;,操作符,算术运算+,-,*,/,以及带.的符号关系运算逻辑运算其它操作符,表达式,MATLAB书写表达式的规则与“手写算式”差不多相同。将变量、数值、函数用操作符连接起来,就构成了表达式。如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续),例如3*.6ans=18,表达式示例,a=(1+sqrt(10)/2;b=abs(3+5i);c=sqrt(bessell(4/3),a-i);d=sin(exp(-2.3);e=pi*d;行末的分号用于抑制结果的显示。,矩阵基础,输入矩阵及矩阵下标矩阵转置:a矩阵元素求和:sum()按列求和矩阵连接:ab矩阵行列删除:利用空矩阵b(2,:)=;%删除矩阵b的第二行,:表示所有的列或行。,矩阵产生和操作,矩阵产生:1)直接输入元素列表;2)从外部数据文件读取:load3)利用Matlab内部函数产生矩阵:eye,ones,zeros,rand,randn(演示)4)用户自己编写M文件产生矩阵。,基本矩阵和矩阵操作,基本矩阵和阵列:eye:单位矩阵ones:全1阵列zeros:全0阵列rand:均匀分布的随机数和阵列randn:正态分布的随机数和阵列linspace:产生线性间空向量logspace:产生对数间空向量,矩阵操作(P35和P63),常用:矩阵转置、重排、求和、下标、删除和运算等;Diag:对角矩阵和矩阵的对角化Reshape:阵列重新排列Rot90:矩阵旋转90度fliplr,flipud:矩阵左右,上下翻转Tril,triu:矩阵的上,下三角阵Cat:阵列连接Repmat:复制并平铺阵列,矩阵中的操作符和特殊字符(一)P46,算术操作符:+,-,*,/,A+B,A-B:相同尺寸简单加、减运算;A*B:线性代数积A.*B:对应元素相乘A/B,AB:矩阵右(左)除A./B,A.B:矩阵对应元素右(左)除AB:矩阵幂(两种形式,指数为标量和底数为标量)A:矩阵转置,若A为复数矩阵,则求出共轭转置。A.:矩阵转置,若A为复数矩阵,也不求共轭。(对应函数见P47.),矩阵中的操作符和特殊字符(二),Kron:Kronecker张量积:K=(X,Y)冒号:建立向量、阵列的下标或用于迭代。(使用格式见书P48)逻辑操作符:%!(P48页)XOR:异或操作,矩阵中的逻辑函数(P78),all:测试矩阵或者向量所有元素是否都为非0any:测试是否有非0元素(对于矩阵,将列当做向量!)find:查找非0元素的值和下标(用于稀疏矩阵)exist:查找给定变量或文件是否存在is*:检测某种状态,*通配符(P81)isa:检测给定类的对象logical:将数值转换成逻辑值,特殊变量和常数,ans,pi,i和j,NaN,Inf,realmax,realminNargin,nargout,varargin,varargouteps:浮点数相对精度(p57)computer:识别运行Matlab的计算机inputname:输入变量名flops:统计浮点运算次数,时间和日期(P59),tic,toc:测定程序运行时间(tictest.m)date,now,clocketime,cputimedatestr,dateevcdatenumweekday,eomdaycalendar,基本数学函数(P69),三角函数指数和对数函数复数函数取整和求余函数(rem、mod),典型例题,产生均匀分布在(a,b)之间的(mn)随机阵,(精确到小数点后k位)a+(b-a)*rand(m,n)a+round(10k*(b-a)*rand(m,n)/10k产生均值为,方差为2的(mn)正态分布随机阵。*randn(m,n)+,阵列与矩阵运算(重点回顾),MATLAB的运算事实上是以阵列(array)及矩阵(matrix)方式在做运算,而这二者在MATLAB的基本运算性质不同。矩阵是二维的,它则采用线性代数的运算方式。矩阵的基本算术操作+-*/基本格式A+BA-BA*BA/BABAA,阵列与矩阵运算,阵列的运算是元素对元素的运算阵列的基本算术操作+-.*./.基本格式A+BA-BA.*BA./BA.BA.A.例如a=a1,a2anb=b1,b2bna.*b=a1*b1,a2*b2an*bna./b=a1/b1,a2/b2an/bn,阵列运算的特色,x=1:0.1:2;%x是阵列x=Columns1through91.00001.10001.20001.30001.40001.50001.60001.70001.8000Columns10through111.90002.0000y=exp(x.2);%exp(x.2)是阵列运算y=Columns1through92.71833.35354.22075.41957.09939.487712.935817.993325.5337Columns10through1136.966154.5982,阵列运算的特色,纯量与阵列运算的差别x=2.0%x是一纯量nume=x3-2*x2+x-6.3;deno=x2+0.05*x-3.14;f=nume/denox=1:5;%注意x是一阵列nume=x.3-2*x.2+x-6.3;deno=x.2+0.05*x-3.14;f=nume./deno,
展开阅读全文