第2章MATLAB语言基础_第1页
第2章MATLAB语言基础_第2页
第2章MATLAB语言基础_第3页
第2章MATLAB语言基础_第4页
第2章MATLAB语言基础_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 MATLAB语言基础语言基础矩阵矩阵 数组数组第第2章章 MATLAB语言基础语言基础l2.1 变量及其赋值变量及其赋值l2.2 向量及其运算向量及其运算l2.3 数组及其运算数组及其运算l2.4 矩阵及其运算矩阵及其运算l2.5 函数与表达式函数与表达式l2.6 MATLAB数据类型数据类型2.1变量及其赋值变量及其赋值2.1.1 变量命名规则变量命名规则l 变量名只能由字母、数字和下划线组成,且必须以变量名只能由字母、数字和下划线组成,且必须以字母开头;字母开头;l 变量名区分字母的大小写;变量名区分字母的大小写;l 变量名不能超过最大长度限制(变量名不能超过最大长度限制(63

2、个字符);个字符);l 关键字不能作为变量名,如关键字不能作为变量名,如for、end和和if等;等; 注意:存变量命名时应尽量避开注意:存变量命名时应尽量避开MATLAB中预定义中预定义的变量。的变量。MATLAB预定义变量预定义变量预定义变量变量的含义变量的含义ans运算结果的缺省变量名运算结果的缺省变量名eps计算机中的最小数。当某量的绝对值小于计算机中的最小数。当某量的绝对值小于eps时,可认为此时,可认为此量为零量为零flops浮点运算数浮点运算数Inf或或inf正无穷大,由零做除数所引入的常量,如正无穷大,由零做除数所引入的常量,如1/0i或或j虚数单位虚数单位i=j=(-1)1/

3、21/2NaN或或nan表示非数值,如表示非数值,如0/0,inf/inf,0*inf,inf-inf等等nargin函数的输入变量数目函数的输入变量数目nargout函数的输出变量数目函数的输出变量数目Realmax或或realmax最大正实数最大正实数Realmin或或realmin最小正实数最小正实数pi圆周率圆周率2.1.2 变量赋值变量赋值l赋值语句的一般形式为:赋值语句的一般形式为: 变量变量=数据(或表达式)数据(或表达式)例子a=1,b=2,c=a2+3*b+1 %命令间用逗号间隔,回车后命令窗口显示为:命令间用逗号间隔,回车后命令窗口显示为:a=1b=2c=8a=1;b=2;

4、 c=a2+3*b+1 %前两条语句加上分号,回车后命令窗口显示为:前两条语句加上分号,回车后命令窗口显示为:c=8 %加了分号的语句的运行结果不再显示在命令窗口中加了分号的语句的运行结果不再显示在命令窗口中a %但可以通过直接输入变量名查看变量的取值但可以通过直接输入变量名查看变量的取值a=1a=4 a=4 %当变量再次被赋值时,新值代替旧值当变量再次被赋值时,新值代替旧值注意:标点符号必须在英文状态下输入注意:标点符号必须在英文状态下输入 。2.2 向量及其运算向量及其运算2.2.1向量的生成向量的生成l直接输入法直接输入法 :生成行向量的格式:向量名生成行向量的格式:向量名=a1,a2,

5、a3,生成列向量的格式:生成列向量的格式:向量名向量名=a1;a2;a3;或对行向量取转置:向量名或对行向量取转置:向量名=a1,a2,a3,l冒号表达式法冒号表达式法 : 向量名向量名=a1:step:a2 其中其中a1为向量的第一个元素,为向量的第一个元素,a2为最后一个元素,为最后一个元素,step为变化步长,省略时,默认为为变化步长,省略时,默认为1。例子l 例例2-2 直接法生成向量直接法生成向量a=1,2,2,3a = 1 2 2 3l 例例2-3a=1:2:10,b=1:5a = 1 3 5 7 9 %注意:用冒号表达式法生成向量时,最后一个元素不一定是注意:用冒号表达式法生成向

6、量时,最后一个元素不一定是a2b = 1 2 3 4 5l组合法组合法 : 一个向量和数值或另一向量(同为行或列向量)组一个向量和数值或另一向量(同为行或列向量)组合在一起,构成一个新的向量合在一起,构成一个新的向量 。l linspace()函数或函数或logspace( )函数生成向量法:函数生成向量法:linspace(a,b,n):产生首尾元素分别为:产生首尾元素分别为a和和b,长度为,长度为n的等差行向量。当的等差行向量。当n省略时,默认省略时,默认n=100。logspace(a,b,n):产生首尾元素分别为:产生首尾元素分别为10a和和10b,长度为长度为n的对数等分行向量。当的

7、对数等分行向量。当n省略时,默认省略时,默认n=50;当当b=pi时,在时,在10a pi区间产生长度为区间产生长度为n的对数等分的对数等分行向量。行向量。1. 同维向量的加减同维向量的加减 2. 数与向量的加减乘除数与向量的加减乘除(/) 3. 向量的点积向量的点积 点积运算函数点积运算函数dot(A,B) :维数相同的向量:维数相同的向量A和和B各对应位置上元素相乘后的和,其结果是一各对应位置上元素相乘后的和,其结果是一个标量。个标量。 即若向量即若向量A=(a1,a2,a3),向量,向量B=(b1,b2,b3),(AB)=a1b1+a2b2+a3b3 2.2.2向量的运算向量的运算4.

8、向量的叉积向量的叉积 叉积运算函数叉积运算函数cross(A,B)。结果是一个过两向。结果是一个过两向量交点且垂直于两个向量所在平面的向量。量交点且垂直于两个向量所在平面的向量。 即若向量即若向量A=(a1,a2,a3),向量,向量B=(b1,b2,b3),(AB)=(a2b3-b2a3,a3b1-a1b3,a1b2-a2b1)。叉。叉积运算要求积运算要求A和和B必须是三元素的向量必须是三元素的向量 5. 向量的混合积向量的混合积 运算格式为运算格式为dot(A,cross(B,C):是指先叉乘后:是指先叉乘后再点乘再点乘2.2.2向量的运算向量的运算a=1 2 3;b=4:6;c=linsp

9、ace(7,10,4);d=1 4 6;d=a+b, e=a-cd = 5 7 9? Error using = minusMatrix dimensions must agree. % 表明表明e=a-c运算中运算中a与与c的维数不同,使运算出错的维数不同,使运算出错f=a+1,g=b-1f = 2 3 4g = 3 4 5 h=3*a, k=4*bh = 3 6 9k = 16 20 24dot(a,b)ans = 32 cross(a,b) ans = -3 6 -3 dot(a,cross(b,d)ans = 01-3. 如何在帮助窗口、帮助命令、帮助演示中查找如何在帮助窗口、帮助命令

10、、帮助演示中查找plot的相的相关指令和演示程序?关指令和演示程序?2-2. 生成两个四维向量生成两个四维向量(1 0 -2 3)和和(0 1 2 1),计算它们的和、,计算它们的和、点积。点积。3.比较比较logspace(a,b,n)命令在参数命令在参数a、b位置处采用位置处采用pi的区别的区别上机练习:4.比较数与向量之间比较数与向量之间“/”、”的区别的区别5.思考如何求两个向量之间的夹角思考如何求两个向量之间的夹角数组和矩阵的有关知识数组和矩阵的有关知识2011.5.132.3 数组及其运算数组及其运算2.3.1 数组的创建数组的创建l直接输入法直接输入法整个数组放在整个数组放在“

11、”内;数组元素以内;数组元素以逗号或空格逗号或空格隔开;隔开;行与行之间用行与行之间用分号分号或回车键或回车键隔开;行内元素也可采隔开;行内元素也可采用冒号表达式法生成。用冒号表达式法生成。 如果数组中的元素都是复数,也可以先产生实部和如果数组中的元素都是复数,也可以先产生实部和虚部的数组,然后再将虚部的数组,然后再将实部数组实部数组+虚数单位虚数单位*虚部数虚部数组组,得到复数数组,得到复数数组 。l函数法函数法l函数法函数法 函数函数语法语法说明说明eyeeye(n); eye(m,n);生成单位数组生成单位数组onesones(n); ones(m,n);生成元素全为生成元素全为1的数组

12、的数组randrand(n); rand(m,n);生成均匀分布的随机数组生成均匀分布的随机数组randnrandn(n); randn(m,n);生成正态分布的随机数组生成正态分布的随机数组zeroszeros(n); zeros(m,n);生成全零数组生成全零数组catcat(dim,A,B)按指定维方向串接数组按指定维方向串接数组diagdiag(v); diag(v,k);diag(A); diag(A,k);求对角线元素或对角矩阵求对角线元素或对角矩阵flipudflipud(A)以数组水平中线为对称轴,交换上下对以数组水平中线为对称轴,交换上下对称位置上的数组元素称位置上的数组元素

13、fliplrfliplr(A)以数组垂直中线为对称轴,交换左右对以数组垂直中线为对称轴,交换左右对称位置上的数组元素称位置上的数组元素repmatrepmat(A,m,n)按指定维上的数目复制数组按指定维上的数目复制数组reshapereshape(A,m,n)按指定的行和列重新排列数组按指定的行和列重新排列数组rot90rot90(A); rot90(A,k)逆时针旋转数组逆时针旋转数组90度的整数倍度的整数倍triltril(A); tril(A,k);提取数组下三角部分,生成下三角矩阵提取数组下三角部分,生成下三角矩阵triutriu(A); triu(A,k);提取数组上三角部分,生成

14、上三角矩阵提取数组上三角部分,生成上三角矩阵例:例: 直接输入法创建数组直接输入法创建数组 A=1 2 3 4;5 6 7 8,B=1 2+i 3i 4,C=9:12;1:2:5 21,D=A+i*CA = 1 2 3 4 5 6 7 8B = 1.0000 2.0000 + 1.0000i 0 + 3.0000i 4.0000 C = 9 10 11 12 1 3 5 21D = 1.0000 + 9.0000i 2.0000 +10.0000i 3.0000 +11.0000i 4.0000 +12.0000i 5.0000 + 1.0000i 6.0000 + 3.0000i 7.000

15、0 + 5.0000i 8.0000 +21.0000i找出需要被操作的元素。找出需要被操作的元素。l A(r,c):表示数组:表示数组A的第的第r行第行第c列的元素。列的元素。l A(r,:):表示数组:表示数组A的第的第r行元素。行元素。l A(:,c):表示数组:表示数组A的第的第c列的元素。列的元素。l A(s):把数组:把数组A的所有列按先左后右的次序,首尾连的所有列按先左后右的次序,首尾连接成一个序列后,由上到下的第接成一个序列后,由上到下的第s个元素。个元素。 注意:注意:MATLAB是按照列的先后顺序存放的是按照列的先后顺序存放的。2.3.2 数组的寻址数组的寻址例:例: 数组

16、的寻址数组的寻址A=randn(3,4),a=A(1,3),b=A(2,:),c= (A(:,3),d=A(10)A = -1.3362 -0.6918 -1.5937 -0.3999 0.7143 0.8580 -1.4410 0.6900 1.6236 1.2540 0.5711 0.8156a = -1.5937b = 0.7143 0.8580 -1.4410 0.6900c=-1.5937 -1.4410 0.5711d =-0.3999 主要包括加主要包括加(+)、减、减(-)、乘、乘(.*)、除、除(./和和.)、幂运算、幂运算(.)、 指数运算指数运算(exp)、对数运算、对数

17、运算(log)和开方运算和开方运算(sqrt)等。等。 2.3.3 数组的代数运算数组的代数运算l例:数组的代数运算例:数组的代数运算lA=1 2 3;4 5 6;B=1 3 4;2 5 6;lE=A.*B,F=A./B,H=A.2,I=exp(A), K=sqrt(A)lE =l 1 6 12l 8 25 36lF =l 1.0000 0.6667 0.7500l 2.0000 1.0000 1.0000lH =l 1 4 9l 16 25 36lI =l 2.7183 7.3891 20.0855l 54.5982 148.4132 403.4288lK =l 1.0000 1.4142

18、1.7321l 2.0000 2.2361 2.4495 按元素来比较相同规格数组(行、列数相同)或按元素来比较相同规格数组(行、列数相同)或比较数组与标量。比较数组与标量。运算符运算符函数函数说明说明运算符运算符函数函数说明说明 =ge大于或等于大于或等于= gt大于大于=ne不等于不等于2.3.4 数组的关系运算数组的关系运算例:例: 数组的关系运算数组的关系运算A=1 3;2 0;B=4 2;2 -1;C=(AB),D=le(A,B),E=(A=B)C = 0 1 0 1D = 1 0 1 0E = 1 1 0 1逻辑逻辑运算运算相应的逻辑相应的逻辑运算函数运算函数逻辑运算符逻辑运算符说

19、明说明与与and& & 能实现所有的逻辑与运算能实现所有的逻辑与运算数组对应元素或两标量同为非零时返回数组对应元素或两标量同为非零时返回1 1;否则返;否则返回回0 0& & 只能用于标量之间只能用于标量之间或或or| | 能实现所有的逻辑或运算能实现所有的逻辑或运算数组对应元素或两标量同为零时返回数组对应元素或两标量同为零时返回0 0;否则返回;否则返回1 1| | 只能用于标量之间只能用于标量之间非非not 实现所有的非运算实现所有的非运算数组元素或标量为非零时返回数组元素或标量为非零时返回0 0,否则返回,否则返回1 1异或异或xor没有相应的运算符没有相

20、应的运算符数组对应元素或两标量只有一个非零时返回数组对应元素或两标量只有一个非零时返回1 1,否,否则返回则返回0 02.3.5 数组的逻辑运算数组的逻辑运算例:例: 数组的逻辑运算数组的逻辑运算A=1 0 0;2 3 4;B=0 1 3;0 1 2;C=A&B,D=or(A,B),E=(A)C = 0 0 0 0 1 1D = 1 1 1 1 1 1E = 0 1 1 0 0 02.4 矩阵及其运算矩阵及其运算 2.4.1 矩阵创建矩阵创建l直接法直接法l函数法函数法 l变换法变换法 函数函数语法语法说明说明hadamardhadamard(n)生成生成n阶阶hadamard矩阵,其

21、中矩阵,其中n满足满足rem(n,4)=0。hankelhankel(c); hankel(c,r);生成第一行和第一列都为生成第一行和第一列都为c,或第一列为,或第一列为c和最后一行为和最后一行为r的的hankel矩阵矩阵hilbhilb(n)生成生成n阶阶hilbert矩阵矩阵invhilbinhilb(n)生成生成n阶逆阶逆hilbert矩阵矩阵magicmagic(n)生成生成n阶魔方矩阵,其中阶魔方矩阵,其中n0且且n2pascalpascal (n); pascal (n,1); pascal (n,2)生成满足指定要求的生成满足指定要求的n阶阶pascal矩阵矩阵toeplitz

22、toeplitz(r);toeplitz (c,r)生成第一行和第一列都是生成第一行和第一列都是r,或第一列为,或第一列为c和第一行为和第一行为r的的toeplitz矩阵矩阵wilkinsonwilkinson(n)生成生成n阶阶J. H. Wilkinsons特征值测试矩阵特征值测试矩阵l 特殊矩阵生成函数特殊矩阵生成函数知识概要:l复数数组(或矩阵)的创建方法l函数法生成特殊数组(或矩阵)函数zeros、ones、eyes、rand、randn、magic、hadamard;diag、reshape、flipud、fliplr、(cat)l数组(或矩阵)元素的访问方式l数组的代数运算、关系

23、运算、逻辑运算2-3. 生成一个生成一个44的正态分布随机数组,求其对角线元素的的正态分布随机数组,求其对角线元素的和,并将该数组变换成和,并将该数组变换成28的数组。的数组。上机练习二:1、求向量、求向量(1 0 0)和向量(和向量(2.5 2.5 0)之间的夹角)之间的夹角c2-1. 定义变量定义变量a为二阶全零阵,访问其第一行第二列的为二阶全零阵,访问其第一行第二列的元素,并将值修改为元素,并将值修改为2。2、使用、使用help命令查找命令查找diag(A,k)命令结果)命令结果6、查找、查找rem和和mod函数的区别函数的区别2-4. 生成一个生成一个35的均匀分布随机数组,将其第的均

24、匀分布随机数组,将其第4列元素加列元素加0.2,并将数组元素与并将数组元素与0.5比较大小。比较大小。矩阵运算和MATLAB数据类型1. 矩阵加、减(矩阵加、减(,)运算)运算规则:规则: 相加、减的两矩阵必须有相同的行相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。和列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加标量与矩阵的所有元素分别进行加减操作。减操作。2.4.2 矩阵的运算矩阵的运算2. 矩阵乘(矩阵乘( )运算运算规则:规则:lA矩阵的列数必须等于矩阵的列数必须等于B矩阵的行数矩阵的行数l标量可与任何矩

25、阵相乘。标量可与任何矩阵相乘。a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*bc =14 32 23 d=-1;0;2;f=pi*df = -3.1416 0 6.2832 3. 矩阵的除法矩阵的除法 左除左除AB=inv(A)*B,是方程是方程Ax=B的解;的解; 右除右除A/B=A*inv(B),是方程是方程xB=A的解。的解。4. 矩阵的乘方和开方矩阵的乘方和开方 乘方利用符号乘方利用符号“”实现,开方利用函数实现,开方利用函数sqrtm实现实现 5. 矩阵的指数和对数矩阵的指数和对数 expm、logmlinv 矩阵求逆矩阵求逆ldet 行列式的值行列式的值leig

26、矩阵矩阵的特征值的特征值 x,lamda=eig(A)lrank 矩阵的秩矩阵的秩l trace 矩阵的迹矩阵的迹l 矩阵的共轭转置矩阵的共轭转置5. 矩阵的其它运算 6.矩阵的一些特殊操作l矩阵的变维矩阵的变维 a=1:12;b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:)l矩阵的变向矩阵的变向 rot90:旋转; fliplr:左右翻; flipud:上下翻l矩阵的抽取矩阵的抽取 tril: 抽取主下三角;triu:抽取主上三角l矩阵的扩充和收缩矩阵的扩充和收缩 A=1 3 5;2 4 6;1 -4 -8 a=det(A)a = -2 B=AB = 1 2 1

27、 3 4 -4 5 6 -8 C=inv(A)C = 4.0000 -2.0000 1.0000 -11.0000 6.5000 -2.0000 6.0000 -3.5000 1.0000 r=rank(A)r = 3 d=trace(A)d = 3 x,lamda=eig(A)x = -0.5101 -0.2904 -0.3914 -0.8250 0.8430 -0.3976 0.2433 -0.4528 0.8299lamda = 3.4672 0 0 0 0.0880 0 0 0 -6.5552数学函数数学函数 类型类型函数函数含义含义类型类型函数函数含义含义三角函三角函数数sin正弦正

28、弦复数函数复数函数abs绝对值和复数模绝对值和复数模asin反正弦反正弦angle复数的相角复数的相角cos余弦余弦real复数的实部复数的实部acos反余弦反余弦imag复数的虚部复数的虚部tan正切正切conj求共轭复数求共轭复数atan反正切反正切complex构造复数构造复数cot余切余切isreal判断实数判断实数acot反余切反余切指数函数指数函数exp以以e为底的指数为底的指数sec正割正割log自然对数自然对数asec反正割反正割log2以以2为底的对数为底的对数csc余割余割log10以以10为底的对数为底的对数acsc反余割反余割pow22的幂的幂取整函取整函数数ceil+

29、取取整整sqrt平方根平方根floor- 取取整整求余函数求余函数mod模除求余模除求余fix向向0取整取整rem求余数求余数round四舍五入四舍五入为整数为整数其它其它lcm求最小公倍数求最小公倍数sign符号函数符号函数gcd求最大公约数求最大公约数名称名称标点标点作用作用空格空格分隔输入量;分隔同行数组元素分隔输入量;分隔同行数组元素逗号逗号,作为要显示结果的指令的结尾;分隔同行数组元素作为要显示结果的指令的结尾;分隔同行数组元素分号分号;作为不显示结果的指令的结尾;分隔数组的行作为不显示结果的指令的结尾;分隔数组的行冒号冒号:用作生成向量;用作下标时表示该维上的所有元素用作生成向量;

30、用作下标时表示该维上的所有元素注释号注释号%其后内容为注释其后内容为注释单引号单引号标识字符和字符串标识字符和字符串圆括号圆括号()()访问数组元素时用访问数组元素时用方括号方括号 输入数组时用输入数组时用花括号花括号 用作细胞数组标识用作细胞数组标识续行号续行号长指令分成两行或多行输入时的标识长指令分成两行或多行输入时的标识符号的作用符号的作用l 逗号和分号的作用逗号和分号的作用 逗号和分号可作为指令间的分隔符,逗号和分号可作为指令间的分隔符,matlab允允许多条语句在同一行出现。许多条语句在同一行出现。 分号如果出现在指令后,屏幕上不显示结果分号如果出现在指令后,屏幕上不显示结果。注意:

31、只要是赋过值的变量,不管是否在屏幕上显示,注意:只要是赋过值的变量,不管是否在屏幕上显示,都存储在工作空间中,以后可随时显示或调用。都存储在工作空间中,以后可随时显示或调用。变量名变量名尽可能不要重复,否则会覆盖尽可能不要重复,否则会覆盖 。当一个指令或矩阵太长。当一个指令或矩阵太长时,可用时,可用续行。续行。l冒号的作用冒号的作用 用于生成等间隔的向量,默认间隔用于生成等间隔的向量,默认间隔1。 用于选出矩阵指定行、列及元素。用于选出矩阵指定行、列及元素。 循环语句循环语句2.5 函数与表达式函数与表达式l 函数函数系统内部函数和用户自定义函数系统内部函数和用户自定义函数 2.5 函数与表达

32、式函数与表达式l 表达式表达式(按照优先级的先后顺序执行;如果优先级相同,(按照优先级的先后顺序执行;如果优先级相同,要按先左后右的顺序执行。)要按先左后右的顺序执行。)括号括号()()共轭转置共轭转置、转置、转置.、矩阵乘方、矩阵乘方 、数组乘方、数组乘方.代数代数+ +、代数、代数- -、逻辑非、逻辑非 矩阵乘矩阵乘* *、矩阵、矩阵左除左除 、矩阵矩阵右除右除/ /、数组乘数组乘. .* *、数组左数组左除除.、数组右数组右除除././加加+ +、减、减- -冒号运算符冒号运算符: :小于小于 、小于等于、小于等于= 、大于等于、大于等于=、等、等于于= = 、不等于不等于=逻辑与逻辑与

33、& &逻辑或逻辑或| |标量与标量与&标量或标量或|2.6 MATLAB数据类型数据类型2.6.1 基本数据类型基本数据类型l 数值型数值型整数:整数: 有符号整数(有符号整数(int) 无符号整数无符号整数(uint)。)。浮点数:浮点数: 单精度浮点数(单精度浮点数(float) 双精度浮点数(双精度浮点数(double)。)。 默认的数据类型是双精度浮默认的数据类型是双精度浮点数。点数。 MATLAB的整数类型的整数类型 数据类型取值范围转换函数有符号8位整数-27 27-1int8有符号16位整数-215 215-1int16有符号32位整数-231 231-1

34、int32有符号64位整数-263 263-1int64无符号8位整数0 28-1uint8无符号16位整数0 216-1uint16无符号32位整数0 232-1uint32无符号64位整数0 264-1uint64注意:整数数据之间进行运算,注意:整数数据之间进行运算,必须保证它们具有相同的类型必须保证它们具有相同的类型 与数值型数据类型有关的函数与数值型数据类型有关的函数函数函数功能功能语法语法who显示当前工作空间中所有内存变量的名称显示当前工作空间中所有内存变量的名称whowhos显示变量的维数、字节数和数据类型显示变量的维数、字节数和数据类型whos 变量名变量名class显示变量

35、的数据类型显示变量的数据类型class (变量名变量名)isinteger验证变量是否为整数验证变量是否为整数,结果返回结果返回1或或0isinteger(变量变量)intmax查询不同整型所能表示的最大整数查询不同整型所能表示的最大整数intmax(整型数据类型名整型数据类型名)intmin查询不同整型所能表示的最小整数查询不同整型所能表示的最小整数intmin(整型数据类型名整型数据类型名)isnumeric验证变量是否为数值型验证变量是否为数值型isnumeric(变量变量)double将数据转换成双精度浮点型将数据转换成双精度浮点型double(变量变量)single将数据转换成单精度

36、浮点型将数据转换成单精度浮点型single(变量变量)isfloat验证变量是否为浮点型验证变量是否为浮点型isfloat(变量变量)isa验证输入变量是否为指定的数据类型验证输入变量是否为指定的数据类型isa(变量变量,数据类型数据类型)realmax查询单精度和双精度所能表示的最大浮点数查询单精度和双精度所能表示的最大浮点数realmax(double或或single)realmin查询单精度和双精度所能表示的最小浮点数查询单精度和双精度所能表示的最小浮点数realmin(double或或single)例:数值型数据类型的转换例:数值型数据类型的转换a=123.4,b=int8(a),c1

37、=isinteger(a),c2=isnumeric(a),d=double(b),e=single(d),f=isa(e,dou .ble)运算结果为a =123.4000,b=123,c1=0,c2=1,d=123,e=123,f=0whos Name Size Bytes Class a 1x1 8 double array b 1x1 1 int8 array c1 1x1 1 logical array c2 1x1 1 logical array d 1x1 8 double array e 1x1 4 single array f 1x1 1 logical array clas

38、s(a),class(b),m1=intmax,m2=intmin(int64),m3=realmax(single),m4=realmin(double)运算结果为double, int8, m1=2147483647, m2=-9223372036854775808, m3=3.4028e+038, m4=2.2251e-308。函数函数size(x)可以查询变量可以查询变量x的尺寸;的尺寸;比如说一个比如说一个A是一个是一个34的二维矩阵:的二维矩阵: size(A) %直接显示出直接显示出A大小大小 输出:输出:ans= 3 4 s=size(A)%返回一个行向量返回一个行向量s,s的

39、第一个元素是矩阵的的第一个元素是矩阵的行数,第二个元素是矩阵的列数行数,第二个元素是矩阵的列数 输出:输出:s= 3 4 r,c=size(A)%将矩阵将矩阵A的行数返回到第一个输出变量的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量将矩阵的列数返回到第二个输出变量c 输出:输出:r= 3 c= 4其它有关函数其它有关函数r,c,m=size(A) 输出:输出:r= 3 c= 4 m= 1也就说它把二维矩阵当作第三维为也就说它把二维矩阵当作第三维为1的三维矩阵,的三维矩阵,当当a是一个是一个n维行向量时,维行向量时,size(A)把其当成一个)把其当成一个1n的矩阵,因此的矩阵,

40、因此size(a)的结果是)的结果是 ans 1 nsize(A,n)n=1或或2,则则 size将返回矩阵的行数或列数。其中将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的是矩阵该语句返回的是矩阵A的行数,的行数, c=size(A,2) 该语句返回的是矩阵该语句返回的是矩阵A的列数的列数函函数数length(x)如果如果x为非空数组,返回行数和列数两者之间数值为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于执行了较大的那一个值,即相当于执行了max(size(x);如果如果x为空数组,则返回为空数组,则返回0;如果如果x是一个向量则返回是一个向量则返回x的长度。

41、的长度。函数函数size(x)可以查询变量可以查询变量x的尺寸;的尺寸;函数函数length(x)相当于相当于max(size(x),返回各维中维数最,返回各维中维数最大的数值;大的数值;函数函数ndims(x)返回变量的维数,相当于返回变量的维数,相当于length(size(x);函数函数nnz(x)返回返回x中非零元素的个数;中非零元素的个数;函数函数nonzeros(x)返回一个由返回一个由x的非零元素构成的列向量,的非零元素构成的列向量,即即length(nonzeros(x)=nnz(x)。其中。其中x可以各种类型量。可以各种类型量。其它有关函数其它有关函数例:例: 查询变量的尺寸

42、查询变量的尺寸 size(randn(2,3) %返回随机矩阵的尺寸返回随机矩阵的尺寸ans = 2 3 a,b=size(randn(1,3) %将随机矩阵的行值赋给变量将随机矩阵的行值赋给变量a,列值赋给变量,列值赋给变量ba = 1b = 3 size(randn(3,4),1) %返回指定维上随机矩阵的尺寸返回指定维上随机矩阵的尺寸ans = 3 length(randn(3,4) %返回随机矩阵各维中最大的值返回随机矩阵各维中最大的值ans = 4 ndims(randn(3,4) %返回随机矩阵的维数返回随机矩阵的维数ans = 2 A=1 2 0 1;0 -1 0 2 nnz(A

43、) %返回返回A中非零元素的个数中非零元素的个数ans = 5 nonzeros(A) %返回返回A中的非零元素中的非零元素ans = 1 2 -1 1 2函数函数logical:将其它类型数组转换成逻辑类型:将其它类型数组转换成逻辑类型数组,其中非零元素为真,零元素为假;数组,其中非零元素为真,零元素为假;函数函数true:产生指定维数的逻辑真值数组;:产生指定维数的逻辑真值数组;函数函数false:产生指定维数的逻辑假值数组。:产生指定维数的逻辑假值数组。函数函数islogical:判别数据是否是逻辑型的:判别数据是否是逻辑型的。 逻辑型逻辑型例:逻辑型数据的有关运算例:逻辑型数据的有关运

44、算A=randint(2,3),B=logical(A),C=true(size(A),D=false(2,3)A = 1 1 1 0 0 1B = 1 1 1 0 0 1C = 1 1 1 1 1 1D = 0 0 0 0 0 0 a=true,b=flase,c=islogical(A),d=islogical(B)结果显示a=1,b=0,c=0,d=1whos B Name Size Bytes Class B 2x3 6 logical arrayGrand total is 6 elements using 6 bytes可见逻辑型数组的每一元素占用1个字节 2.6.2 字符串字符串

45、l字符串的定义字符串的定义直接输入法直接输入法冒号表达式法冒号表达式法组合法组合法函数法函数法注意:若字符串中存在单引号,需要在输入字注意:若字符串中存在单引号,需要在输入字符串内容时,连续输入两个单引号。符串内容时,连续输入两个单引号。 例:例: 生成字符串生成字符串str1=Heibei University,str2=of, ,Science, ,and, ,T,e,c,h,n,o,l,o,g,y %直接输入法str1 =Heibei Universitystr2 =of Science and Technology str=str1, ,str2 %组合法Heibei Universi

46、ty of Science and Technologystr3=Dont you? %字符串中有单引号str3 =Dont you?str4=a:2:z %冒号表达式法str4 =acegikmoqsuwystr5=char(MATLAB,基础,与应用) %函数法str5 =MATLAB基础 与应用 l 查询字符串的长度查询字符串的长度函数函数size:以向量的形式返回各维的维数;:以向量的形式返回各维的维数;函数函数length:返回各维中维数最大的数值。:返回各维中维数最大的数值。例:例: 查询上例中字符串查询上例中字符串str的长度的长度a1=size(str) ,a2=length(

47、str)a = 1 43a2=43l字符串的操作字符串的操作字符串的水平合并:字符串的水平合并:将字符串依次放在将字符串依次放在“ ”中,并用空格或逗中,并用空格或逗号隔开;号隔开;调用函数调用函数 strcat。字符串的垂直合并:字符串的垂直合并:将字符串依次放在将字符串依次放在“ ”中,并用分号隔开,中,并用分号隔开,如长度不等,必须用空格补齐。如长度不等,必须用空格补齐。调用函数调用函数 strvcat。字符串操作函数表字符串操作函数表函数函数功能功能ischar判别变量是否是字符型判别变量是否是字符型blanks(n)返回包含有返回包含有n个空格的字符串个空格的字符串deblank(s

48、tr)删除字符串中的空格删除字符串中的空格findstr(str1,str2)在在str1中查找中查找str2lower(str)转换成小写转换成小写upper(str)转换成大写转换成大写strcmp(str1,str2)比较比较str1和和str2,相等返回,相等返回1,不等返回,不等返回0strrep(str1,str2,str3)用用str3替代替代str1中所有的中所有的str2strcmpi(str1,str2)忽略大小写比较忽略大小写比较str1和和str2strncmpi(str1,str2,n)比较比较str1和和str2的前的前n个字符个字符strmatch(str1,st

49、r2)从从str2的各行中查询以的各行中查询以str1开头的行号开头的行号strjust(str,style)str按按style(取(取left、right或或center)进行左对齐、)进行左对齐、右对齐或居中右对齐或居中strtok(str)返回返回str中第一个分隔符(空格、回车或中第一个分隔符(空格、回车或tab键)键)前的部分前的部分例:例: 字符串间的操作字符串间的操作 str1=Good Morning ;str2=Good Morning,Sir;str3=Good Afternoon; s1=deblank(str1), s2=findstr(str2,str1),s3=f

50、indstr(str2,s1),s4=lower(s1),s5=upper(str3)s1 =Good Mornings2 = s3= 1s4 =good morning s5 =GOOD AFTERNOON s6=strcmp(str1,s1), s7=strncmpi(str1,s1,12), s8=strrep(str2,s1,str3), s9=strmatch(s1,str2)s6 = 0s7 = 1s8 =Good Afternoon,Sirs9 = 1 s10=strjust(str1,center)s10 = Good Morning s11=strjust(str1,righ

51、t)s11 = Good Morning s12=strjust(str1,left)s12 =Good Morning l字符串与数值数组的转换字符串与数值数组的转换 字符型转换函数 函数函数功能功能用法用法abs字符串转换成字符串转换成ASCII码码abs(字符串字符串)double字符串转换成字符串转换成ASCII码码double(字符串字符串)char通过通过ASCII码把任意类型数据转换码把任意类型数据转换成字符串成字符串char(数据量数据量)num2str将非整数数组转换成字符串将非整数数组转换成字符串num2str(数值数组数值数组,有效有效数位数位)int2str将整数数组转

52、换成字符串将整数数组转换成字符串int2str(整数数组整数数组)mat2str将数值数组转换成字符行向量将数值数组转换成字符行向量mat2str(数值数组数值数组,有效有效数位数位)str2num将字符数组转换成数值数据将字符数组转换成数值数据str2num(字符数组字符数组)例例:字符串与其它类型数组的转换字符串与其它类型数组的转换 str1=Heibei University;b=abs(str1),c=double(str1),d=char(b)b = Columns 1 through 9 72 101 105 98 101 105 32 85 110 Columns 10 thro

53、ugh 17 105 118 101 114 115 105 116 121c = Columns 1 through 9 72 101 105 98 101 105 32 85 110 Columns 10 through 17 105 118 101 114 115 105 116 121d =Heibei UniversityA=randn(2,4),B=int2str(A),C=num2str(A,4) ,D=mat2str(A,3), E=str2num(D);A = -0.6918 1.2540 -1.4410 -0.3999 0.8580 -1.5937 0.5711 0.690

54、0B =-1 1 -1 0 1 -2 1 1C =-0.6918 1.254 -1.441 -0.3999 0.858 -1.594 0.5711 0.69D =-0.692 1.25 -1.44 -0.4;0.858 -1.59 0.571 0.69E = -0.6920 1.2500 -1.4400 -0.4000 0.8580 -1.5900 0.5710 0.6900 class(A),class(B),class(C),class(D),class(E)得到结果依次是double、char、char、char和double。l 细胞数组的创建细胞数组的创建 用花括号用花括号 直接赋值

55、生成细胞数组直接赋值生成细胞数组 :例例:a=his score,MATLAB,90,笔试45;上机45a = his score MATLAB 90 2x4 char注意:对于内容较多的细胞,显示的是细胞的字节数和数据注意:对于内容较多的细胞,显示的是细胞的字节数和数据类型。类型。函数函数cell创建细胞数组创建细胞数组 ,调用格式为:调用格式为:cell(m,n) 2.6.3 细胞数组细胞数组细胞数组的基本元素是细胞细胞数组的基本元素是细胞(cell),每个细胞可以存储,每个细胞可以存储不同类不同类型、不同维数型、不同维数的数据的数据. la=cell(2);a1,1=class1;a1,

56、2=no0823101;a2,1=name mary; a2,2=English 85;Computer 90la = l class 1 no 0823101l name mary 2x11 charl细胞数组的访问细胞数组的访问圆括号访问:得到的数据仍然是细胞数组;圆括号访问:得到的数据仍然是细胞数组;花括号访问:得到的是细胞元素的内容,是字符型的。花括号访问:得到的是细胞元素的内容,是字符型的。 例: 对上例中创建的细胞数组a进行访问 b=a(2,2) %圆括号访问b = 2x11 char class(b)ans =cell %b为细胞型 c=a2,2 %花括号访问c =English

57、 85 Computer 90 class(c)ans =char %c为字符型l 细胞数组的扩充、收缩和重组细胞数组的扩充、收缩和重组例:对上例中的细胞数组a进行扩充、收缩和重组 a1,3=, a3,1=age 20 %扩充a = class1 no0823101 name mary 2x11 char age 20 a(:,2)= %收缩a = class1 name mary age 20 reshape(a,2,3) %重组ans = class1 age 20 name mary l细胞数组的其它操作细胞数组的其它操作MATLAB提供的主要细胞数组运算函数提供的主要细胞数组运算函数

58、函数函数功能功能celldisp(c)显示细胞数组显示细胞数组c的内容的内容cellplot(c)显示细胞数组显示细胞数组c的结构图的结构图iscell(c)查询查询c是否是细胞数组是否是细胞数组iscellstr(c)查询查询c是否是字符型细胞数组是否是字符型细胞数组cellfun应用于细胞数组中的各个细胞元素应用于细胞数组中的各个细胞元素 cellstr(s)用字符数组用字符数组s的的行向量作为细胞构成细胞数组的的行向量作为细胞构成细胞数组char(c)细胞数组细胞数组c中的细胞作为行向量构成字符数组中的细胞作为行向量构成字符数组mat2cell(A,m,n)将普通数组将普通数组A按照指定

59、的按照指定的m和和n参数转换成细胞数组参数转换成细胞数组cell2mat(c)将细胞数组将细胞数组c转换成普通数组转换成普通数组num2cell(A,dim)将数组数组将数组数组A按照指定维方向按照指定维方向dim(1是行、是行、2是行、是行、3是页,并且是页,并且3种种方向还可以组合起来,如方向还可以组合起来,如1,2,dim缺省时,把数组的每一元素都缺省时,把数组的每一元素都转化成细胞数组的一个细胞)转换成细胞数组转化成细胞数组的一个细胞)转换成细胞数组例:细胞数组的相关运算例:细胞数组的相关运算A=randn(2,2),random number,2;i,pi,eye(3) %产生细胞数

60、组AA = 2x2 double random number 2 0+ 1.0000i 3.1416 3x3 double celldisp(A) %显示细胞数组A A1,1 = -1.1465 1.1892 1.1909 -0.0376A2,1 = 0 + 1.0000iA1,2 = random numberA2,2 = 3.1416A1,3 = 2A2,3 = 1 0 0 0 1 0 0 0 1cellplot(A) %显示细胞数组显示细胞数组A的结构图的结构图 iscell(A) %判别判别A是否是细胞型是否是细胞型ans = 1 iscellstr(A) %判别判别A是否是字符细胞型是否是字符细胞型ans = 0B=cellfun(leng

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论