1、主要内容主要内容 变量的定义与数据类型变量的定义与数据类型 常用函数常用函数 数组运算数组运算 MATLAB常用标点符号常用标点符号 MATLAB常用快捷键和快捷命令常用快捷键和快捷命令第一节第一节 变量的定义与数据类型变量的定义与数据类型1.变量命名规则变量命名规则一、一、变量的定义与赋值变量的定义与赋值 可由任意的字母、数字或下划线组成,但必须以字母打头;可由任意的字母、数字或下划线组成,但必须以字母打头;变量名区分字母大小写;变量名区分字母大小写;变量名最多不超过变量名最多不超过63个字符(个字符(MATLAB6.5及以上版本)。及以上版本)。特殊变量特殊变量意意 义义 ans如果未定义
2、变量名,用于计算结果存储的默认变量名如果未定义变量名,用于计算结果存储的默认变量名 pi圆周率圆周率(=3.1415926.=3.1415926.)inf或或Inf无穷大无穷大值值 eps浮点运算的相对精度浮点运算的相对精度realmax最大的正浮点数最大的正浮点数realmin最小的正浮点数最小的正浮点数NaN或或nan不定量不定量 i或或j虚数单位虚数单位nargin函数输入参数个数函数输入参数个数nargout函数输出参数个数函数输出参数个数lasterr存放最新的错误信息存放最新的错误信息lastwarn存放最新的警告信息存放最新的警告信息2.特殊变量与常量列表特殊变量与常量列表 x=
3、1x=1 y=1+2+sqrt(9)y=6 z=Hellow World!z=Hellow World!3.赋值语句赋值语句二、二、数据类型数据类型 MATLAB中有中有15种基本的数据类型,有种基本的数据类型,有逻辑型逻辑型、字符型字符型、整型整型、浮点型浮点型、结构数组结构数组、元胞数组元胞数组以及以及函数句柄函数句柄等。其中等。其中整型又分为整型又分为有符号整型有符号整型和和无符号整型无符号整型,8位整型位整型、16位整型位整型、32位整型位整型和和64位整型位整型,浮点型又分为,浮点型又分为单精度浮点型单精度浮点型和和双精度双精度浮点型浮点型。具体可以通过。具体可以通过MATLAB中自
4、带的中自带的isa函数查看。函数查看。数组类型数组类型基本基本组分组分组分内容组分内容基本组分基本组分占用字节占用字节数数数值数组数值数组(Numeric Array)元素元素双精度实数标量双精度实数标量(MATLAB系系统默认)统默认)双精度复数标量双精度复数标量816字符串数组字符串数组(Character String Array)元素元素字符字符2元胞数组元胞数组(Cell Array)元胞元胞可以存放任意类型、任意大小的可以存放任意类型、任意大小的数据数据不定不定结构数组结构数组(Structure Array)结构结构只有结构的只有结构的“域域”可以存放数据,可以存放数据,数据可以
5、是任意类型、任意大小。数据可以是任意类型、任意大小。不定不定三、三、数据输出格式数据输出格式 MATLAB中数值型数据的输出格式可以通过中数值型数据的输出格式可以通过 format 命命令指定令指定续表:续表:第二节第二节 常用函数常用函数常用函数列表常用函数列表:x=1 -1.65 2.2 -3.1;y1=abs(x)y1=1.0000 1.6500 2.2000 3.1000 y2=sin(x)y2=0.8415 -0.9969 0.8085 -0.0416 y3=round(x)y3=1 -2 2 -3 y4=floor(x)y4=1 -2 2 -4【例例2.2-1】常用函数的用法举例常
6、用函数的用法举例 y5=ceil(x)y5=1 -1 3 -3 y6=min(x)y6=-3.1000 y7=mean(x)y7=-0.3875 y8=range(x)y8=5.3000 y9=sign(x)y9=1 -1 1 -1第三节第三节 数组运算数组运算一、矩阵的定义一、矩阵的定义【例例2.3-1】按行方式输入矩阵元素。按行方式输入矩阵元素。x=1,2,3;4 5 6;7 8,9x=1 2 3 4 5 6 7 8 9 y=1 2 3 4 5 6 7 8 9y=1 2 3 4 5 6 7 8 9【例例2.3-2】通过冒号运算符构造向量和矩阵。通过冒号运算符构造向量和矩阵。x=1:10 x
7、=1 2 3 4 5 6 7 8 9 10 y=1:2:10y=1 3 5 7 9 z=1:3;4:6;7:9z=1 2 3 4 5 6 7 8 9【例例2.3-3】linspace函数用来生成等间隔向量函数用来生成等间隔向量。x=linspace(1,10,10)x=1 2 3 4 5 6 7 8 9 10调用格式:调用格式:x=linspace(初值初值,终值终值,向量长度向量长度)【例例2.3-4】利用】利用size函数返回矩阵的行数和列数函数返回矩阵的行数和列数。x=1 2 3;4 5 6x=1 2 3 4 5 6 size(x)ans=2 3 m,n=size(x)m=2n=3【例例
8、2.3-5】利用行标、列标和冒号运算符提取矩阵元素。利用行标、列标和冒号运算符提取矩阵元素。x=1 2 3;4 5 6;7 8 9x=1 2 3 4 5 6 7 8 9 y1=x(1,2)y1=2 y2=x(2:3,1:2)y2=4 5 7 8 y3=x(:,1:2)y3=1 2 4 5 7 8 y4=x(1,:)y4=1 2 3 y5=x(:)y5=1 4 7 2 5 8 3 6 9 y6=x(3:6)y6=7 2 5 8【例例2.3-6】通过拼凑和变形来定义新的矩阵。通过拼凑和变形来定义新的矩阵。x1=1 2 3;x2=4 5 6;x=x1;x2x=1 2 3 4 5 6 y=reshap
9、e(x,3,2)y=1 5 4 3 2 6 z=repmat(x,2,2)z=1 2 3 1 2 3 4 5 6 4 5 6 1 2 3 1 2 3 4 5 6 4 5 6【例例2.3-7】定义字符型矩阵。定义字符型矩阵。x=abc;def;ghix=abcdefghi size(x)ans=3 3【例例2.3-8】定义复数矩阵。定义复数矩阵。x=2i+5x=5.0000+2.0000i y=1 2 3;4 5 6*i+7y=7.0000+1.0000i 7.0000+2.0000i 7.0000+3.0000i 7.0000+4.0000i 7.0000+5.0000i 7.0000+6.0
10、000i a=1 2;3 4;b=5 6;7 8;c=complex(a,b)c=1.0000+5.0000i 2.0000+6.0000i 3.0000+7.0000i 4.0000+8.0000i【例例2.3-9】定义符号矩阵。定义符号矩阵。syms a b c d x=a b;c dx=a,b c,d y=1 2 3;4 5 6;y=sym(y)y=1,2,3 4,5,6二、特殊矩阵二、特殊矩阵 零矩阵:零矩阵:zeros 一矩阵:一矩阵:ones 单位阵:单位阵:eye 对角阵:对角阵:diag 随机阵:随机阵:rand 魔方阵:魔方阵:magic【例例2.3-10】生成特殊矩阵。生成
11、特殊矩阵。A=zeros(3)B=ones(3,5)C=eye(3,5)D=diag(1 2 3)E=diag(D)F=rand(3)G=magic(3)三、高维数组三、高维数组【例例2.3-11】通过直接赋值的方式定义通过直接赋值的方式定义3维数组。维数组。x(1:2,1:2,1)=1 2;3 4;x(1:2,1:2,2)=5 6;7 8;x(:,:,1)=1 2 3 4x(:,:,2)=5 6 7 8【例例2.3-12】利用利用cat函数定义函数定义3维数组。维数组。A1=1 2;3 4;A2=5 6;7 8;A=cat(3,A1,A2)A(:,:,1)=1 2 3 4A(:,:,2)=5
12、 6 7 8【例例2.3-13】利用利用reshape函数定义函数定义3维数组。维数组。x=reshape(1:12,2,2,3)x(:,:,1)=1 3 2 4x(:,:,2)=5 7 6 8x(:,:,3)=9 11 10 12【例例2.3-14】利用利用repmat函数定义函数定义3维数组。维数组。x=repmat(1 2;3 4,1 1 2)x(:,:,1)=1 2 3 4x(:,:,2)=1 2 3 4四、定义结构体数组四、定义结构体数组【例例2.3-15】直接赋值定义结构体数组。直接赋值定义结构体数组。struct1(1).name=xiezhh;struct1(2).name=y
13、anlih;struct1(1).age=31;struct1(2).age=32;struct1struct1=1x2 struct array with fields:nameage【例例2.3-16】利利用用struct函数定义结构体数组函数定义结构体数组。struct2=struct(name,xiezhh,yanlih,age,31,32)struct2=1x2 struct array with fields:name age struct2(1).nameans=xiezhh调用格式:调用格式:s=struct(field1,values1,field2,values2,)s=s
14、truct(field1,field2,)五、定义元胞数组五、定义元胞数组【例例2.3-17】直接赋值定义元胞数组。直接赋值定义元胞数组。c1=1 2;3 4,xiezhh,5 6 7,I LOVE MATLABc1=2x2 double xiezhh 1x3 double I LOVE MATLAB【例例2.3-18】利用利用cell函数定义元胞数组。函数定义元胞数组。c2=cell(2,4)c2=c22,3=1 2 3c2=1x3 double 调用格式:调用格式:c=cell(n)c=cell(m,n)c=cell(m,n)c=cell(m,n,p,)c=cell(m n p)c=cel
15、l(size(A)【例例2.3-19】元胞数组的访问。元胞数组的访问。访问元胞数组访问元胞数组C的第的第i行第行第j列的元胞,用命令列的元胞,用命令C(i,j),注,注意用的是圆括号;访问元胞数组意用的是圆括号;访问元胞数组C的第的第i行第行第j列的元胞里的列的元胞里的元素,用命令元素,用命令Ci,j,注意用的是花括号。,注意用的是花括号。celldisp函数可以函数可以显示元胞数组里的所有内容。显示元胞数组里的所有内容。c=1 2,xie,xiezhh;MATLAB,3 4;5 6,I LOVE MATLABc=1x2 double xie xiezhh MATLAB 2x2 double
16、I LOVE MATLAB c(2,2)ans=2x2 double c2,2 ans=3 4 5 6 c=1 2,xiezhh;MATLAB,3 4;5 6;celldisp(c)c1,1=1 2c2,1=MATLABc1,2=xiezhhc2,2=3 4 5 6六、几种数组的转换六、几种数组的转换 mat2cell,将矩阵分块,转为元胞数组,将矩阵分块,转为元胞数组 cell2mat,将元胞数组转为矩阵,将元胞数组转为矩阵 num2cell,将数值型数组转为元胞数组,将数值型数组转为元胞数组 cell2struct,将元胞数组转为结构数组,将元胞数组转为结构数组 struct2cell,将
17、结构数组转为元胞数组,将结构数组转为元胞数组 num2str,将数值型数组转为字符型数组,将数值型数组转为字符型数组 str2num,将字符型数组转为数值型数组,将字符型数组转为数值型数组【例例2.3-20】数组转换函数示例。数组转换函数示例。A1=rand(60,50);B1=mat2cell(A1,10 20 30,25 25)C1=cell2mat(B1);isequal(A1,C1)A2=1 2 3 4;5 6 7 8;9 10 11 12;B2=num2cell(A2)C=Heping,Tianjin,35;Xiezhh,Xingyang,30 fields=Name,Address
18、,Age;S=cell2struct(C,fields,2)CS=struct2cell(S)isequal(C,CS)七、矩阵的算术运算七、矩阵的算术运算1.矩阵的加减矩阵的加减【例例2.3-21】矩阵的加减运算。矩阵的加减运算。A=1 2;3 4;B=5 6;7 8;C=A+BC=6 8 10 12 D=A-BD=-4 -4 -4 -42.矩阵的乘法矩阵的乘法【例例2.3-22】矩阵的乘法。矩阵的乘法。A=1 2 3;4 5 6;B=1 1 1 1;2 2 2 2;3 3 3 3;C=A*BC=14 14 14 1432 32 32 32 D=1 1 1;2 2 2;E=A.*DE=1 2
19、 3 8 10 123.矩阵的除法矩阵的除法 矩阵的除法包括矩阵的除法包括左除左除(AB)、)、右除右除(A/B)和)和点除点除(A./B)三种。一般情况下,)三种。一般情况下,x=Ab是方程组是方程组A*x=b的解,的解,而而x=b/A是方程组是方程组x*A=b的解,的解,x=A./B表示同型矩阵表示同型矩阵A和和B对应元素相除对应元素相除【例例2.3-23】矩阵的除法。矩阵的除法。A=2 3 8;1 -2 -4;-5 3 1;b=-5;3;2;x=Abx=1 3 -2 B=A;C=A./BC=1 1 1 1 1 1 1 1 14.矩阵的乘方(矩阵的乘方()与点乘方)与点乘方(.)矩阵的乘方
20、要求矩阵必须是方阵,有以下矩阵的乘方要求矩阵必须是方阵,有以下3种情况:种情况:(1)矩阵)矩阵A为方阵,为方阵,x为正整数,为正整数,A x表示矩阵表示矩阵A自乘自乘x次;次;(2)矩阵)矩阵A为方阵,为方阵,x为负整数,为负整数,A x表示矩阵表示矩阵A-1自乘自乘x次;次;(3)矩阵)矩阵A为方阵,为方阵,x为分数,例如为分数,例如x=m/n,A x表示矩阵表示矩阵A 先自乘先自乘m次,然后对结果矩阵里的每一个元素开次,然后对结果矩阵里的每一个元素开n次方。次方。矩阵的点乘方不要求矩阵为方阵,有以下矩阵的点乘方不要求矩阵为方阵,有以下2种情况:种情况:(1)A为矩阵,为矩阵,x为标量,为
21、标量,A.x表示对矩阵表示对矩阵A中的每一个元素中的每一个元素 求求x次方;次方;(2)A和和x为同型矩阵,为同型矩阵,A.x表示对矩阵表示对矩阵A中的每一个元素求中的每一个元素求 x中对应元素次方。中对应元素次方。【例例2.3-24】矩阵乘方与点乘方。矩阵乘方与点乘方。A=1 2;3 4;B=A 2B=7 10 15 22 C=A.2C=1 4 9 16 D=A.AD=1 4 27 256八、矩阵的关系运算八、矩阵的关系运算 矩阵的关系运算是通过比较两个同型矩阵的对应元素矩阵的关系运算是通过比较两个同型矩阵的对应元素的大小关系,或者比较一个矩阵的各元素与某一标量之间的大小关系,或者比较一个矩
22、阵的各元素与某一标量之间的大小关系,返回一个逻辑矩阵(的大小关系,返回一个逻辑矩阵(1表示真,表示真,0表示假)表示假)。关系运算的运算符有:关系运算的运算符有:(小于小于)、(大大于于)、=(大于或等于大于或等于)、=(等于等于)、=(不等于不等于)6种种【例例2.3-25】矩阵的关系运算。矩阵的关系运算。A=1 2;3 4;B=2 2;2 2;C1=A B C1=0 0 1 1 C2=A=BC2=1 0 1 1 C3=A=2C3=0 1 1 1九、矩阵的逻辑运算九、矩阵的逻辑运算矩阵的逻辑运算包括:矩阵的逻辑运算包括:逻辑逻辑“或或”运算,运算符为运算,运算符为“|”.A|B表示同型矩阵表
23、示同型矩阵A和和B的或运算,若的或运算,若A和和B的对应元素至少有一个非的对应元素至少有一个非0,则相应的结果,则相应的结果元素值为元素值为1,否则为,否则为0;逻辑逻辑“与与”运算,运算符为运算,运算符为“&”.A&B表示同型矩阵表示同型矩阵A和和B的与运算,若的与运算,若A和和B的对应元素均非的对应元素均非0,则相应的结果元素,则相应的结果元素值为值为1,否则为,否则为0;逻辑逻辑“非非”运算,运算符为运算,运算符为“”.A表示矩阵表示矩阵A的非运算,的非运算,若若A的元素值为的元素值为0,则相应的结果元素值为,则相应的结果元素值为1,否则为,否则为0;逻辑逻辑“异或异或”运算。运算。xo
24、r(A,B)表示同型矩阵表示同型矩阵A和和B的异或运的异或运算,若算,若A和和B的对应元素均为的对应元素均为0或均非或均非0,则相应的结果元素值,则相应的结果元素值为为0,否则为,否则为1.先决与运算,运算符先决与运算,运算符“&”.A&B 表示表示当当A为真时,为真时,才执行才执行A和和B的逻辑与运算的逻辑与运算 先决先决或或运算,运算符运算,运算符“|”.A|B 表示当表示当A为真时,为真时,不用不用再再执行执行A和和B的逻辑的逻辑或或运算运算【例例2.3-26】矩阵的逻辑运算。矩阵的逻辑运算。A=0 0 1 2;B=0 -2 0 1;C1=A|BC1=0 1 1 1 C2=A&BC2=0
25、 0 0 1 C3=AC3=1 1 0 0 C4=xor(A,B)C4=0 1 1 0十、运算符的优先级十、运算符的优先级优先级优先级运算符运算符1()()2.3代数正代数正代数负代数负4.*./*/5+-6:7=A=1 2 3;4 5 6;7 8 9A=1 2 3 4 5 6 7 8 9 B=AB=1 4 7 2 5 8 3 6 92.矩阵的翻转矩阵的翻转【例例2.3-28】矩阵的翻转。矩阵的翻转。A=1 2 3;4 5 6;7 8 9;B1=flipud(A)B1=7 8 9 4 5 6 1 2 3 B2=fliplr(A)B2=3 2 1 6 5 4 9 8 7 B3=rot90(A)B
26、3=3 6 9 2 5 8 1 4 73.方阵的行列式方阵的行列式【例例2.3-29】方阵的行列式。方阵的行列式。A=1 2;3 4;d1=det(A)d1=-2 syms a b c d B=a b;c d;d2=det(B)d2=a*d-b*c4.逆矩阵与广义伪逆矩阵逆矩阵与广义伪逆矩阵【例例2.3-30】逆矩阵与广义伪逆矩阵。逆矩阵与广义伪逆矩阵。A=1 2;3 4;Ai=inv(A)Ai=-2.0000 1.0000 1.5000 -0.5000 syms a b c d B=a b;c d;Bi=inv(B)Bi=d/(a*d-b*c),-b/(a*d-b*c)-c/(a*d-b*c
27、),a/(a*d-b*c)2023-5-5 C=1 2 3;4 5 6;Cpi=pinv(C)Cpi=-0.9444 0.4444 -0.1111 0.1111 0.7222 -0.2222 D=C*Cpi*CD=1.0000 2.0000 3.0000 4.0000 5.0000 6.00002023-5-55.方阵的特征值与特征向量方阵的特征值与特征向量【例例2.3-31】方阵的特征值与特征向量。方阵的特征值与特征向量。A=5 0 4;3 1 6;0 2 3;d=eig(A)d=-1.0000 3.0000 7.0000 V,D=eig(A)V=-0.2857 0.8944 0.6667
28、-0.8571 0.0000 0.6667 0.4286 -0.4472 0.3333D=-1.0000 0 0 0 3.0000 0 0 0 7.00002023-5-5 Vs,Ds=eig(sym(A)Vs=2,1,-2 2,3,0 1,-3/2,1Ds=7,0,0 0,-1,0 0,0,32023-5-56.矩阵的迹和矩阵的秩矩阵的迹和矩阵的秩【例例2.3-32】矩阵的迹和矩阵的秩。矩阵的迹和矩阵的秩。A=1 2 3;4 5 6;7 8 9;t=trace(A)t=15 r=rank(A)r=2第四节第四节 MATLAB常用标点符号常用标点符号2023-5-5 MATLAB常用标点符号常
29、用标点符号名名 称称标标 点点功能说明功能说明空格 数组元素或输入量之间的分隔符逗号,数组元素或输入量之间的分隔符黑点.小数点;结构体数组的字段标识符;点运算标识符。分号;定义数组时,作为行间分隔符;用在某条命令的“结尾”,不显示计算结果冒号:作为冒号运算符,用来生成一维数组;作为数组单下标引用时,表示将数组按列拉长为长向量;作为数组多下标引用时,表示该维上的所有元素注释号%注释内容引导符单引号对 字符串标记符圆括号()用来访问数组元素;用来标记运算作用域;定义函数时用来标记输入变量列表方括号 用来定义数组;定义函数时用来标记输出变量列表花括号 用来定义或访问元胞数组;用来标记图形对象中的特殊
30、字符下连符_作为变量、函数或文件名中的连字符;图形对象中下脚标前导符续行号.由三个以上连续黑点构成。它把其下的命令行看作该行的延续,以构成一个“较长”的完整命令“At”号放在函数名前,形成函数句柄;匿名函数前导符;放在目录名前,形成“用户对象”类目录。第五节第五节 MATLAB常用快捷键和快捷命令常用快捷键和快捷命令2023-5-5一、一、MATLAB常用快捷键常用快捷键2023-5-5二、二、MATLAB常用快捷命令常用快捷命令2023-5-5【例例2.5-1】MATLAB常用快捷命令举例。常用快捷命令举例。A=1 2 3;4 5 6;7 8 9;B=100;Str=Hellow World!;C=cell(2,3);S=struct(name,heping,xiezhh,age,30,32);syms a b c d D=a b;c d;whos save xiezhh.mat A B Str clear A B Str load xiezhh.mat which sin open sqrt