资源描述:
《第2章 MATLAB数据及其运算(许).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章MATLAB数据及其运算2.1数据类型2.2矩阵描述2.3数据运算2.4字符串2.5单元数组2.6结构型变量1矩阵是MATLAB最基本、最重要的数据对象,大部分运算或命令都是在矩阵运算的意义下执行的。向量和单个数据都可以作为矩阵的特例来处理。常量和变量浮点数和复数字符串数组结构体(Structure)和单元(Cell)数据类型。逻辑型数据。在MATLAB中,以数值1(非零)表示“真”,以数值0表示“假”。2.1MATLAB数据类型2.1.1常量在MATLAB中有一些特定的变量,已经被预定义了某个特定的值,这些变量被称为常量。MATLAB7中的常量
2、主要有pi、inf和eps等。在使用时,应尽量避免对这些变量重新赋值。常量常量的功能常量常量的功能ans用作结果的默认变量名nargin函数的输入参数个数beep使计算机发出“嘟嘟”声nargout函数的输出参数个数pi圆周率varagin可变的函数输入参数个数eps浮点数相对误差varagout可变的函数输出参数个数inf无穷大realmin最小的正浮点数NaN或nan不定数realmax最大的正浮点数i或j复数单位bitmax最大的正整数2.1.2变量变量是MATLAB7的基本元素之一,MATLAB7语言不要求对所使用的变量进行事先说明,而且无需指
3、定变量的类型,系统会根据该变量被赋予的值或对该变量所进行的操作来自动确定变量的类型。变量名是以字母开头,后接字母、数字或下划线的字符序列,但不允许出现标点符号,最多63个字符变量名区分大小写2.1.3浮点数几乎在所有的情况下,MATLAB7的数据都是以双精度数值来表示的,这些双精度数在系统内部用二进制来表示。有很多实数不能被精确地表示,对能够表示的值也有一个限制,并且还存在一个浮点相对误差限所谓相对误差限是指MATLAB7语言能够区分两个不同大小的数时,这两个数之间的最小差值。数据类型存储空间表示范围类型转换函数单精度型single4字节-3.4028
4、2×1038~+3.40282×1038single()双精度型double8字节-1.79769×10308~+1.79769×10308double()浮点数举例例2-1下边3个式子的计算结果是相同的,但是由于这些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差>>a=0.33-0.5+0.17a=2.7756e-017>>b=0.33+0.17-0.5b=0>>c=0.17-0.5+0.33c=5.5511e-0172.1.4复数MATLAB7语言对复数的处理也是十分简便的,在处理复数问题时,不需要进行其他任何的附加操
5、作。>>a2=pi+3.14ja2=3.1416+3.1400i>>>>b=4*(1+3/sqrt(-1))b=4.0000-12.0000i复数举例>>a=1+2*ia=1.0000+2.0000i>>b=3-4ib=3.0000-4.0000i>>c=pi+sin(pi/2)*ic=3.1416+1.0000i>>d=a+bd=4.0000-2.0000i2.2矩阵描述将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。A=[123;456;789];C=[A,eye(size(A)
6、);ones(size(A)),A]123100456010789001111123111456111789冒号表达式冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中:e1为初始值,e2为步长,e3为终止值。在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。矩阵的表示通过下标引用矩阵的元素,例如:A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵
7、元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如:A=[1,2,3;4,5,6];A(3)ans=2矩阵元素序号(Index)与下标(Subscript)是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。(1)利用冒号表达式获得子矩阵①A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。②A(i:i+m,:)表示取A矩阵
8、第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i