第2讲 Matlab数据及其运算
- 格式:ppt
- 大小:749.00 KB
- 文档页数:63
第2章 MATLAB数值计算MATLAB的数学计算=数值计算+符号计算其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。
2.1 变量和数据2.1.1数据类型数据类型包括:数值型、字符串型、元胞型、结构型等数值型=双精度型、单精度型和整数类整数类=无符号类(uint8、uint16、uint32、uint64)和符号类整数(int8、int16、int32、int64)。
2.1.2数据1. 数据的表达方式▪可以用带小数点的形式直接表示▪用科学计数法▪数值的表示范围是10-309~10309。
以下都是合法的数据表示:-2、5.67、2.56e-56(表示2.56×10-56)、4.68e204(表示4.68×10204)2. 矩阵和数组的概念在MATLAB的运算中,经常要使用标量、向量、矩阵和数组,这几个名称的定义如下:▪标量:是指1×1的矩阵,即为只含一个数的矩阵。
▪向量:是指1×n或n×1的矩阵,即只有一行或者一列的矩阵。
▪矩阵:是一个矩形的数组,即二维数组,其中向量和标量都是矩阵的特例,0×0矩阵为空矩阵([])。
▪数组:是指n维的数组,为矩阵的延伸,其中矩阵和向量都是数组的特例。
3. 复数复数由实部和虚部组成,MATLAB用特殊变量“i”和“j”表示虚数的单位。
复数运算不需要特殊处理,可以直接进行。
复数可以有几种表示:z=a+b*i或z=a+b*jz=a+bi 或z=a+bj(当b 为标量时) z=r*exp(i*theta)● 得出一个复数的实部、虚部、幅值和相角。
a=real(z) %计算实部 b=imag(z) %计算虚部 r=abs(z) %计算幅值 theta=angle(z) %计算相角 说明:复数z 的实部a=r*cos(θ); 复数z 的虚部b=r*sin(θ); 复数z 的幅值22b a r +=;复数z 的相角theta=arctg(b/a),以弧度为单位。
MATLAB应用第2章MATLAB数据及其运算MATLAB数据的特点2.1 MATLAB数据的特点●矩阵●是MATLAB最基本、最重要的数据对象,MATLAB的大部分运算或命令都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。
向量和单个数据都可以作为矩阵的特例来处理。
●数值数据●双精度型、单精度数、带符号整数和无符号整数。
●字符数据●结构体(Structure)和单元(Cell)数据类型。
●稀疏矩阵(Sparse)●逻辑型数据●在MATLAB中,以数值1(非零)表示“真”,以数值0表示“假”。
2.2 变量及其操作●变量和赋值●变量命名的规则●变量名的第一个字符必须是英文字母,最多可以包含63个字符。
●变量名中不能有空格、标点,但可以有下划线如my_var1。
●变量名、函数名对大小写敏感,如my_data和My_data就不是一个变量。
●给变量起名时不要和这些保留字冲突。
●变量不需要事先说明,用赋值语句就定义了变量。
变量的类型由赋值语句等号右边的数字形式决定,免去了高级语言中那种冗长的说明语句。
编程过程中,尽量不要与系统变量名冲突,如果你赋值给系统变量,将把变量中的原值冲掉,对计算不利。
只有在重新启动后才能恢复原保留值。
2.2 变量及其操作(续)●赋值语句●(1) 变量=表达式●(2) 表达式●其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
例2.1 计算表达式的值,并将结果赋给变量x,然后显示计算结果。
在MATLAB命令窗口输入命令:常用MATLAB预定义变量2.2 变量及其操作(续)●数据的输出格式●MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。
●在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。
●MATLAB默认的数据显示格式为短格式(short):当结果为整数,就作为整数显示;当结果是实数,以小数点后四位的长度显示。
第2章 MATLAB数据及其运算教材P37习题二1. 如何理解“矩阵是MATLAB最基本的数据对象”?答:MATLAB的数据类型有:数值型、字符型、结构体、单元、多维矩阵、稀疏矩阵等。
以上各种数据类型都以矩阵形式存在,所以矩阵是MATLAB最基本的数据对象。
2. 设A和B是两个同维同大小的矩阵,问:(1) A*B和A.*B的值是否相等?(2) A./B和B.\A的值是否相等?(3) A/B和B\A的值是否相等?(4) A/B和B\A所代表的数学含义是什么?答:(1)不相等;(2)不相等;(3)不相等;(4) A/B=A*inv(B); B\A=inv(B)*A;3. 写出完成下列操作的命令。
(1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。
(2)删除矩阵A的第7号元素。
(3)将矩阵A的每个元素值加30。
(4)求矩阵A的大小和维数。
(5)将向量t的0元素用机器零来代替。
(6)将含有12个元素的向量x转换成3×4矩阵。
(7)求一个字符的ASCII码。
(8)求一个ASCII码所对应的字符。
答:假设A=rand(5,5)%或假设A=[1,2,3,4,5; 6,7,8,9,10; 11,12,13,14,15; 16,17,18,19,20; 21,22,23,24,25](1) B=A(2:5,[1,3,5]) %或者 B=A(2:5, 1:2:5)(2) A(7)=[](3) A+30(4) size(A), ndims(A)(5) t=0:0.1:1, t(find(t==0))=eps(6) x=1:12, reshape(x,3,4)(7) abs('b') %或者double('b')(8) char(98) %或者setstr(98)4.下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9; B=10-A;L1=A==B;L2=A<=5;L3=A>3 & A<7;L4=find(A>3&A<7);答:L1L2L3L4L1 =0 0 0 0 1 0 0 0 0L2 =1 1 1 1 1 0 0 0 0L3 =0 0 0 1 1 1 0 0 0L4 =4 5 65. 已知: 23100.7780414565532503269.5454 3.14−⎡⎤⎢⎥−⎢⎥=⎢⎥⎢⎥−⎣⎦A 完成下列操作:(1) 取出A 的前3行构成矩阵B ,前两列构成矩阵C ,右下角3×2子矩阵构成矩阵D ,B 与C 的乘积构成矩阵E 。