版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.1 数值向量和数组数值向量和数组 1 1、向量和数组的生成向量和数组的生成 在命令窗口中直接输入在命令窗口中直接输入 其格式要求:向量元素用其格式要求:向量元素用“ ” ”括起括起来,元素之间用来,元素之间用空格、逗号或分号空格、逗号或分号相隔。相隔。 用空格或逗号生成用空格或逗号生成行行向量;向量; 用分号生成用分号生成列列向量。向量。 a1=1 2 3 3a1 = 1 2 3 3 a2=1,2,3,3a2 = 1 2 3 3数组的生成方式同上数组的生成方式同上 a3=1;2;3;3a3 = 1 2 3 3 等差元素向量或数组的生成等差元素向量或数组的生成 使用冒号使用冒号(:)生成等差
2、元素向量生成等差元素向量其调用格式: V=v1:n:v2或或V=(v1:n:v2)其中,其中,v1表示起始元素,表示起始元素,n表示步长,表示步长,v2 表示表示最后一个元素。最后一个元素。使用使用linspace函数来生成等差元素向量函数来生成等差元素向量其调用格式: V=linspace(v1,v2,n)其中,其中,v1表示起始元素,表示起始元素, v2 表示最后一个元表示最后一个元素,素,n表示元素的个数。表示元素的个数。 V2=(1:6:25)V2 = 1 7 13 19 25 V3=1:6:25V3 = 1 7 13 19 25 V=linspace(1,25,5)V = 1 7 1
3、3 19 25 利用函数生成数组利用函数生成数组 数组实质上是矩阵的基本元素之一,也是一数组实质上是矩阵的基本元素之一,也是一种特殊形式的矩阵,即一行多列的矩阵。种特殊形式的矩阵,即一行多列的矩阵。 a=ones(1,5) a = 1 1 1 1 1 zeros(1,10) ans = 0 0 0 0 0 0 0 0 0 0向量的基本运算向量的基本运算向量与数的运算向量与数的运算 向量与数的加向量与数的加(减减)或乘或乘(除除)运算是指向量中的每个运算是指向量中的每个元素分别与该数进行加元素分别与该数进行加(减减)或乘或乘(除除)操作。操作。 v=20:-5:1v = 20 15 10 5 v
4、1=v+5v1 = 25 20 15 10向量的基本运算向量的基本运算向量与向量的运算向量与向量的运算 向量与向量的加或减乘运算是指向量中的每个向量与向量的加或减乘运算是指向量中的每个元素分别与该数进行加或减操作。元素分别与该数进行加或减操作。 v1=20:-5:1, v2=1:5:20;v1 = 20 15 10 5 v=v1+v2v1 = 21 21 21 21向量的点积和叉积向量的点积和叉积 a=1 2 3 4; b=3 4 5 6; ab=dot(a,b)ab = 50 a1=1 2 3; b1=2 5 7; c1=cross(a1,b1)c1 = -1 -1 1 ab1=sum(a.
5、*b)ab1 = 502.1.3 数组操作及其运算数组操作及其运算数组寻址数组寻址 A=1 23 43 21 45 67; A(3) ans = 43 A(2:4) ans = 23 43 21 A(4:end) ans = 21 45 67 A(1:2:6) ans = 1 43 45 A(1 4 6) ans = 1 21 67元素替换元素替换 A=1 23 43 21 45 67; A(1)=0A = 0 23 43 21 45 67 A(4:end)=1 1 1 A = 0 23 43 1 1 1 A(1:3)=0A = 0 0 0 21 45 67 A(1:3)=A = 21 45
6、67例例: 计算机记录了计算机记录了50个数据,并存于数组个数据,并存于数组a,打,打开以后发现后面的开以后发现后面的20个数据有误。于是重个数据有误。于是重新记录了后面的新记录了后面的20个数据,并存于数组个数据,并存于数组b。请将数组请将数组a中的数据纠正过来。中的数据纠正过来。load a %装入数据装入数据aload b %装入数据装入数据b a(31:50)=b 数组合并数组合并 A=1 23 43 21 45 67; B=23 1 2B = 23 1 2 C=A,B C = 1 23 43 21 45 67 23 1 2 D=A(1:2:6)D = 1 43 45 E=B;D E
7、= 23 1 2 1 43 45 试验搜集了试验搜集了27个数据,存储在个数据,存储在A中,如下:中,如下:A=101,102,103,104,105,106,107,108,109,201,202,203,204,205,206,207,208,209,301,302,303,304,305,306,307,308,309;观察观察发现前发现前10个数据和后面个数据和后面7个才是需要的,请个才是需要的,请把需要的数据重新组合成一组新的数据把需要的数据重新组合成一组新的数据 例:例:程序:程序: A=101,102,103,104,105,106,107,108,109,201,202,203
8、,204,205,206,207,208,209,301,302,303,304,305,306,307,308,309; B1=A(1:10),A(21:27) A(11:20)= 数组长度计算数组长度计算计算数组长度可以使用计算数组长度可以使用length()函数函数 A=1 23 43 21 45 67; l=length(A)l = 6 %数组的长度为数组的长度为62. 数组的基本运算数组的基本运算数组运算是元素对元素的运算,也就是说无论什数组运算是元素对元素的运算,也就是说无论什么运算,对数组中的每个元素都是平等进行的。么运算,对数组中的每个元素都是平等进行的。数组间的加减运算是数组
9、中对应的元素进行加减。数组间的加减运算是数组中对应的元素进行加减。 X=1 2 3; Y=2 5 8; Z1=X+YZ1 = 3 7 11数组乘法运算符为数组乘法运算符为“. .* *”,数组除法包括左除,数组除法包括左除“./” ./” 和右除和右除“.”.”两种运算符。数组乘除是数组对应两种运算符。数组乘除是数组对应元素的乘除。元素的乘除。注意:进行运算的数组的维数必须相同。注意:进行运算的数组的维数必须相同。 C1=X.*Y %点乘运算点乘运算C1 = 2 10 24 C2=X./Y %点右除运算点右除运算C2 = 0.5000 0.4000 0.3750 C3=X.Y %点左除运算点左
10、除运算C3 = 2.0000 2.5000 2.6667 W1=X.Y %数组乘方运算用符号数组乘方运算用符号“.”表表示示W1 = 1 32 6561 W2=X.2 %数组点平方运算数组点平方运算W2 = 1 4 91. 生成一个长度为生成一个长度为10的数组,并且要求该的数组,并且要求该数组的前数组的前5个数字为个数字为0,后,后5个数字为个数字为3. 2. 创建两个创建两个1行行5列的数组列的数组A和和B,分别提,分别提取它们前取它们前3个元素,构成两个新的数组个元素,构成两个新的数组C和和D,计算,计算C、D的乘积。的乘积。课课 堂堂 练练 习习 数值矩阵数值矩阵 矩阵的创建矩阵的创建
11、直接输入创建矩阵直接输入创建矩阵 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9创建数组的方法创建等间隔行矩阵创建数组的方法创建等间隔行矩阵 函数法创建矩阵函数法创建矩阵 函数函数说明说明函数函数说明说明 空矩阵空矩阵zeros全部元素都为全部元素都为0 0的矩阵的矩阵eye单位矩阵单位矩阵magic魔方矩阵魔方矩阵ones全部元素都为全部元素都为1 1的常的常数矩阵数矩阵randperm随机排列整数数组随机排列整数数组rand元素服从元素服从0 0和和1 1之间之间均匀分布的随机矩均匀分布的随机矩阵阵randn元素服从零均值单位方元素服从零均值单位方差正态分
12、布的随机矩阵差正态分布的随机矩阵randi随机整数矩阵随机整数矩阵diag产生对角阵或提取对角产生对角阵或提取对角线上元素线上元素 rand(3)ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 randn(3)ans = 2.7694 0.7254 -0.2050 -1.3499 -0.0631 -0.1241 3.0349 0.7147 1.4897随机矩阵随机矩阵随机矩阵随机矩阵 randperm(3) %产生元素为产生元素为13的随机数组的随机数组ans = 3 2 1 randperm(100,6
13、) %产生元素为产生元素为13中任意中任意6个元素组成的随机数组个元素组成的随机数组ans = 66 17 70 4 27 5 MATLAB提供了求魔方矩阵的函数提供了求魔方矩阵的函数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。魔方矩阵有一个有趣的性质,其每行、魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等每列及两条对角线上的元素和都相等 对于对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数组成。个整数组成。 魔方矩阵魔方矩阵 magic(3)ans = 8 1 6 3 5 7 4 9 2 magic(5)ans = 1
14、7 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9将将5175等等25个数填入一个个数填入一个5行行5列的表格中,列的表格中,使其每行每列及对角线的和均为使其每行每列及对角线的和均为315。例:例:实例分析:实例分析: MATLAB提供了生成魔方矩阵的函数提供了生成魔方矩阵的函数magic(n),其功能是生成一个其功能是生成一个n阶魔方阵。阶魔方阵。其每行、每列及两条对角线上的元素和都相等,对其每行、每列及两条对角线上的元素和都相等,对于于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个整数个整数组成
15、。组成。跟我练:跟我练:M=5+magic(5)M = 67 74 51 58 65 73 55 57 64 66 54 56 63 70 72 60 62 69 71 53 61 68 75 52 59例例: 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间区间的随机整数,然后判断的随机整数,然后判断A的元素是否能被的元素是否能被3整除,并提出。整除,并提出。 实例分析:实例分析:MATLAB提供了生成随机整数矩阵的函数提供了生成随机整数矩阵的函数randi(),其调用格式:其调用格式:R=randi(imax,N),R为返回的为返回的N行行N列的随机整数列的随机整数矩阵,
16、其元素值得范围矩阵,其元素值得范围1imax;R=randi(imax,M,N),R为返回的为返回的M行行N列列的随机整数矩阵,其元素值得范围的随机整数矩阵,其元素值得范围1imax;R=randi(imin imax,M,N),R为返回的为返回的M行行N列的随机整数矩阵,其元素值得范列的随机整数矩阵,其元素值得范围围iminimax;R = randi(., CLASSNAME), CLASSNAME定义元素值的类型。定义元素值的类型。跟我练:跟我练:生成生成5阶随机方阵阶随机方阵A:A= randi(10 80,5,5) %也可以用也可以用fix(70*rand(5)+10)A = 63
17、59 67 40 44 62 12 58 36 41 37 29 32 63 55 55 13 76 65 59 21 16 12 23 62P=rem(A,3)=0P = 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 A(find (P )ans = 63 21 12 12 36 63判断判断A的元素是否可以被的元素是否可以被3整除。整除。 用用rand函数产生函数产生1090的的随机整数矩阵。随机整数矩阵。课课 堂堂 练练 习习 只有对角线上有非只有对角线上有非0元素的矩阵称为元素的矩阵称为对角矩对角矩阵,阵, 对角线上的元素相等的对角
18、矩阵称为对角线上的元素相等的对角矩阵称为数量数量矩阵矩阵, 对角线上的元素都为对角线上的元素都为1的对角矩阵称为的对角矩阵称为单单位矩阵位矩阵。对角阵对角阵 先建立先建立33随机整数矩阵随机整数矩阵A,然后将,然后将A的的第一行元素乘以第一行元素乘以8,第二行乘以,第二行乘以2.5,第,第三行乘以三行乘以5。例:例:实例分析:实例分析: 函数函数diag()(1) 提取矩阵的对角线元素提取矩阵的对角线元素设设A为为mn矩阵矩阵,diag(A)函数用于提取矩阵函数用于提取矩阵A主对角线元素,产生一个具有主对角线元素,产生一个具有min(m,n)个元素个元素的的列向量列向量。 diag(A)函数还
19、有一种形式函数还有一种形式diag(A,k),其功,其功能是提取能是提取第第k条对角线条对角线的元素的元素(k为整数为整数)。(2) 构造对角矩阵构造对角矩阵设设V为具有为具有m个元素的向量个元素的向量,diag(V)将产将产生一个生一个mm对角矩阵,其主对角线元素对角矩阵,其主对角线元素即为向量即为向量V的元素。的元素。diag(V)函数也有另一种形式函数也有另一种形式diag(V,k),其,其功能是产生一个功能是产生一个nn(n=m+|k|)对角阵,其对角阵,其第第k条对角线的元素即为向量条对角线的元素即为向量V的元素。的元素。跟我练:跟我练: A=randi(100,3)A = 15 9
20、8 56 64 58 52 86 100 34 D=diag(8 2.5 5)D = 8.0000 0 0 0 2.5000 0 0 0 5.0000 AD=D*A AD = 120 784 448 160 145 130 430 500 170利用利用M文件文件建立矩阵建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一对于比较大且比较复杂的矩阵,可以为它专门建立一个个M文件文件(是文本文件是文本文件)。新建一个新建一个M文件,输入下列内容文件,输入下列内容A=101,102,103,104,105,106,107,108,109,201,202,203,204,205,206,207,2
21、08, 209,301,302,303,304,305,306,307,308,309保存为保存为AA.m在命令窗口在命令窗口AA即可调出数据即可调出数据A2.2.2 矩阵的操作矩阵的操作矩阵元素操作矩阵元素操作 矩阵元素操作包括提取矩阵中的某个元素,或矩阵元素操作包括提取矩阵中的某个元素,或是修改矩阵中的某个元素是修改矩阵中的某个元素 A=rand(3,4) A(2,3) %也可以用单小标提取也可以用单小标提取 A(2,2)=0 %将矩阵将矩阵A中第中第2行行2列的元素修改为列的元素修改为0 A(4,:)= %删除第删除第4行行提取子块提取子块 a=1 2 3;3 4 2;3 4 6a(2,
22、:)c=a(1:2,:) %提取矩阵提取矩阵a的第的第1到第到第2行的所有元素。行的所有元素。第一个第一个“:”表示步长为表示步长为1,第二个,第二个“:”表表示全部列示全部列 a(:,2) a(1:2,1:2) 创建一创建一34的矩阵的矩阵A,把矩阵,把矩阵A的的2行行2列的列的元素职位元素职位0;3行行1列的元素与列的元素与1行行4列的元素列的元素对换,构成新的矩阵对换,构成新的矩阵B。 课课 堂堂 练练 习习矩阵合并矩阵合并满足条件的不同的矩阵可以合并为新矩阵满足条件的不同的矩阵可以合并为新矩阵B=1,2,3;4,5,6;7,8,9; %创建矩阵创建矩阵BC=B,eye(size(B);
23、ones(size(B),B %构建矩阵构建矩阵C矩阵的维数矩阵的维数 通过函数通过函数size()返回矩阵的行数和列数,如果是一行返回矩阵的行数和列数,如果是一行或一列的矩阵,也可以用函数或一列的矩阵,也可以用函数length()来计算矩阵的来计算矩阵的列数和行数。列数和行数。 b=1 2 3;3 4 2; m,n=size(b) %求取矩阵求取矩阵b的行数和列数的行数和列数m = 2n = 3 m=size(b,1) %计算计算b的行数的行数m = 2 n=size(b,2) %计算计算b的列数的列数n = 3 l1=length(b(1,:) %求取矩阵求取矩阵b第第1行所构成的子矩阵的
24、长度行所构成的子矩阵的长度 l2=length(b(:,2) %求取矩阵求取矩阵b第第2列所构成的子矩阵的长度列所构成的子矩阵的长度矩阵的排序矩阵的排序用用sort()函数对矩阵进行排序函数对矩阵进行排序其调用格式:其调用格式:sort(A,Dim,Mode)Dim:选择排列的维,:选择排列的维,“1”表示对矩阵的列进表示对矩阵的列进行排序,默认对矩阵的列排序;行排序,默认对矩阵的列排序; “2”表示表示对矩阵的行进行排序。对矩阵的行进行排序。 Mode:ascend为升序,默认按升序排列;为升序,默认按升序排列;descend为降序。为降序。A=rand(3) %生成生成3行行3列的随机矩阵
25、列的随机矩阵 A = 0.4103 0.3529 0.1389 0.8936 0.8132 0.2028 0.0579 0.0099 0.1987 sort(A,1,ascend) %矩阵矩阵A各列按升序排列各列按升序排列 sort(A,2,descend) %矩阵矩阵A各列按升序排列各列按升序排列课课 堂堂 练练 习习班里有班里有9名同学他们的英语成绩如下:名同学他们的英语成绩如下:要求:对他们的英语成绩排名并把他们的名次写在要求:对他们的英语成绩排名并把他们的名次写在他们的下面他们的下面姓名姓名 张张1张张2张张3王王1王王2王王3李李1李李2李李3学号学号 201100120110022
26、011003201100420110052011006201100720110082011009成绩成绩 866766456787668923程序:程序:clearp22=xlsread(kt2_1.xls);p21=p22(2,1:9);x1=sort(p21,descend);st=zeros(1,length(p21);for n1=1:length(p21) for n2=1:length(x1) if p21(n1)=x1(n2) st(1,n1)=n2; end endend?怎么才能怎么才能将姓名学号一将姓名学号一起按升序排?起按升序排?%sts=rank;xlswrite(kt
27、2_1.xls,s,1,A4)xlswrite(kt2_1.xls,st,B4:J4)矩阵的运算矩阵的运算 矩阵与标量的运算矩阵与标量的运算 b=1 2 3;3 4 2 c1=b+10 c3=b*10 矩阵与矩阵的运算矩阵与矩阵的运算两个矩阵的维数完全相同时,可以进行矩阵加两个矩阵的维数完全相同时,可以进行矩阵加减法运算。如果两个矩阵的维数不相等,则减法运算。如果两个矩阵的维数不相等,则MATLAB将给出错误信息,提示两个矩阵的维将给出错误信息,提示两个矩阵的维数不相等。数不相等。 a=1 2 3;3 4 2;3 4 6; b=1 2 3;3 4 2; c=a(2:3,:)c = 3 4 2
28、3 4 6 A=b+c %矩阵对应元素相加矩阵对应元素相加 两个矩阵两个矩阵A和和B,如果,如果A的列数等于的列数等于B的行数,则可的行数,则可以进行以进行A乘乘B的乘法运算(与线性代数里矩阵相乘的乘法运算(与线性代数里矩阵相乘的条件相同)。的条件相同)。 a=1 2 3;3 4 2;3 4 6; b=1 2 3;3 4 2; B=b*aB = 16 22 25 21 30 29 如果采用数组乘法如果采用数组乘法“.*”, 两个矩阵的维数必须相两个矩阵的维数必须相同,相乘的结果为两个矩阵的对应元素相乘。同,相乘的结果为两个矩阵的对应元素相乘。 b.*aError using .* Matrix
29、 dimensions must agree. c=5 7 9;3 5 4; b.*cans = 5 14 27 9 20 8矩阵的除法运算:矩阵的除法运算:包括左除包括左除“”和右除和右除“/”两种运算。两种运算。其中左除:其中左除:AB=inv(A)B(即为(即为A的逆矩阵的逆矩阵乘以乘以B),),A为方矩阵;为方矩阵;右除:右除:A/B=Ainv(B)(即为即为A乘以的乘以的B逆矩逆矩阵阵),B为方矩阵。为方矩阵。 A=1 2 3;3 4 2;3 4 6 %生成矩阵生成矩阵 B=rand(3) %产生一个产生一个33的随机矩阵的随机矩阵 C=A/B %A右除右除B B1=inv(B) %
30、用函数用函数inv(B)求出求出B的逆矩的逆矩阵阵 C2=A*B1 %比较比较C1和和C2 AB %B左除左除A矩阵的转置矩阵的转置 a=rand(3)a矩阵的行列式矩阵的行列式det(a)矩阵的秩矩阵的秩 rank(a) 创建一个创建一个33的矩阵,判断是否为满的矩阵,判断是否为满秩矩阵(满秩矩阵的概念请参阅线性秩矩阵(满秩矩阵的概念请参阅线性代数)。代数)。 课课 堂堂 练练 习习在在MATLAB中,计算矩阵中,计算矩阵A的特征值和特征向量的特征值和特征向量的函数是的函数是eig(A),常用的调用格式有:,常用的调用格式有:(1) E=eig(A):求矩阵:求矩阵A的全部特征值,构成向的全
31、部特征值,构成向量量E。(2) V,D=eig(A):求矩阵:求矩阵A的全部特征值构成对的全部特征值构成对角阵角阵D,并求,并求A的特征向量构成的特征向量构成V的列向量。的列向量。矩阵的特征值与特征向量矩阵的特征值与特征向量例例 A=1,2,3;4,5,6;7,8,9; eig(A)ans = 16.1168 -1.1168 -0.0000 V,D=eig(A)V = -0.2320 -0.7858 0.4082 -0.5253 -0.0868 -0.8165 -0.8187 0.6123 0.4082D = 16.1168 0 0 0 -1.1168 0 0 0 -0.0000字符串字符串
32、字符串的创建字符串的创建只需用单引号只需用单引号 将需设定的字符串引注将需设定的字符串引注 str=is there a hotel ? whos %用用whos函数对工作空间变量查询函数对工作空间变量查询字符串的连接字符串的连接对于字符串与字符串的连接,可以直接采用数组的对于字符串与字符串的连接,可以直接采用数组的连接方式,还可以用函数来实现字符串的连接。连接方式,还可以用函数来实现字符串的连接。 s1=we must study hard!s1 =we must study hard! s2=and we should never forget our country!s2=and we
33、should never forget our country! w=s1,s2 %用逗号实现字符串的水平连接用逗号实现字符串的水平连接w =we must study hard!and we should never forget our country!s=u;v %用分号实现字符串的垂直连接用分号实现字符串的垂直连接 ?字符串元素的提取字符串元素的提取字符串元素的提取方法和数组元素的提取完全一样。字符串元素的提取方法和数组元素的提取完全一样。如:如: str=今天是今天是6月月1日,是世界儿童节日,是世界儿童节str =今天是今天是6月月1日,是世界儿童节日,是世界儿童节 str(4:1
34、4)ans =6月月1日,是世界儿童节日,是世界儿童节 str(14:-1:4)ans =节童儿界世是,日节童儿界世是,日1月月6例例:建立一个字符串向量,然后对该向量做如建立一个字符串向量,然后对该向量做如下处理:下处理:(1) 取第取第15个字符组成的子字符串。个字符组成的子字符串。(2) 将字符串倒过来重新排列。将字符串倒过来重新排列。(3) 将字符串中的小写字母变成相应的大将字符串中的小写字母变成相应的大写字母,其余字符不变。写字母,其余字符不变。(4) 统计字符串中小写字母的个数。统计字符串中小写字母的个数。 ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符
35、串取子字符串revch=ch(end:-1:1) %将字符串倒排将字符串倒排k=find(ch=a&ch s1=we must study hard!; s2=and we should never forget our country!; str1=strcat(s1,s2) %字符串水平链接字符串水平链接 str1 = we must study hard!and we should never forget our country! str2=strvcat(s1,s2) %字符串垂直链接字符串垂直链接str2 =we must study hard! and we should
36、 never forget our country!str3=char(s1,s2) %字符串垂直链接字符串垂直链接str3 =we must study hard! and we should never forget our country!字符串的查找和替换:字符串的查找和替换:查找字符函数查找字符函数findstr的调用格式:的调用格式:k=findstr(s1,s2),说明:说明:S1,S2 都可以是被查找的对象。都可以是被查找的对象。查找字符函数查找字符函数strfind的调用格式:的调用格式:k=strfind(text, pattern),说明:在说明:在text中查找字符串中
37、查找字符串pattern。替换函数替换函数strrep的调用格式:的调用格式:S=strrep(S1,S2,S3),说明:把说明:把S1中的中的S2用用S3 代替。代替。 str=儿童节是儿童节是6月月1日日 %创建字符串创建字符串str =儿童节是儿童节是6月月1日日 findstr(str,儿童节儿童节) %查找字符串中的一部查找字符串中的一部分分ans = 1 findstr(儿童节儿童节,str)ans = 1 strfind(str,儿童节儿童节)ans = 1 strfind(儿童节儿童节,str) %比较比较findstrh和和strfind的用法的用法ans = s1=劳动节是
38、劳动节是5月月4日日; s=strrep(s1,劳动节劳动节,青年节青年节)s =青年节是青年节是5月月4日日字符串的转换字符串的转换函函 数数功功 能能函函 数数功功 能能hex2dec将将16进制字符串转化为进制字符串转化为10进制整数进制整数dec2hex将将10进制整数转化为进制整数转化为16进制字符进制字符串串bin2dec将将2进制字符串转化为进制字符串转化为10进制整数进制整数dec2bin将将10进制整数转化为进制整数转化为2进制字符串进制字符串base2dec转化转化B底字符串为底字符串为10进制整数进制整数hex2num将将16进制字符转化为双精度数进制字符转化为双精度数u
39、pper改该字符串为大写改该字符串为大写lower改该字符串为小写改该字符串为小写fprintf把格式化的文本写到文件中或显示把格式化的文本写到文件中或显示屏上屏上sprintf用格式控制,数字转换成字符串用格式控制,数字转换成字符串sscanf用格式控制,字符串转换成数字用格式控制,字符串转换成数字charASCII码转换成字符串码转换成字符串num2str数字转换成字符串数字转换成字符串int2str整数转换成字符串整数转换成字符串函数函数fprintf的应用例子如下:的应用例子如下: x = 0:.2:1; y = x; exp(x); fprintf(%6.2f,%6.2fn,y);
40、%按指定格式进行显按指定格式进行显示示 0.00, 1.00 0.20, 1.22 0.40, 1.49 0.60, 1.82 0.80, 2.23 1.00, 2.72函数函数sprintf应用实例如下所示,在命令窗口输入下应用实例如下所示,在命令窗口输入下列命令:列命令: t=sprintf(%d,round(pi) %按指定格式转换成按指定格式转换成字符串字符串tt =3函数函数sscanf应用实例如下所示,在命令窗口输入下应用实例如下所示,在命令窗口输入下列命令:列命令: S = 2.7183 3.1416 %输入数字字符串输入数字字符串 SS =2.7183 3.1416A = ss
41、canf(S,%f) %按指定格式转换陈数字按指定格式转换陈数字AA = 2.7183 3.1416例:例:查找字符串查找字符串“We are friends E”中中E的个数,不分的个数,不分大小写。大小写。实例分析:实例分析:1)查找字符串中的字符可以用函数)查找字符串中的字符可以用函数findstr()。2)由于题意要求不分大小写,故需要在查找之前用)由于题意要求不分大小写,故需要在查找之前用函数函数upper()或或lower()将全部字符转换为大写或小将全部字符转换为大写或小写,以便查找。写,以便查找。3)由于函数)由于函数findstr()返回的是字符的位置,故需要返回的是字符的位
42、置,故需要用用length()计算出个数。计算出个数。跟我练:跟我练:clearclcstr=We are friends E;str=lower(str); %转换为小写转换为小写strl=findstr(str,e); %查找小写字母查找小写字母el=length(strl);fprintf(字符串中字符串中E的个数为的个数为%dn,l)保存并运行程序,其运行结果如下:保存并运行程序,其运行结果如下:字符串中字符串中E的个数为的个数为4例:例:把字符串把字符串“we have n friends ”中的每个单词的第中的每个单词的第一个字母变成大写。一个字母变成大写。 程序程序1:s=we
43、have n friends;s1=lower(s);x=isletter(s1);n=length(x);s1(1)=upper(s1(1);for i=2:(n-1) if x(i)=0 s1(i+1)=upper(s1(i+1); endenddisp(s1)程序程序2:clears=we have n friends;s=lower(s);s=deblank(s);s(1)=upper(s(1)x=isspace(s)s(find(x)+1)=upper(s(find(x)+1)单元型变量单元型变量单元型变量是单元型变量是Matlab中一种特殊的数据结构,其元素中一种特殊的数据结构,其
44、元素以单元的形式存在,并且每个单元元素的数据类型可以单元的形式存在,并且每个单元元素的数据类型可以不同。以不同。1、单元型变量的创建、单元型变量的创建 用符号用符号“”将各种数据类型纳入一个变量之下将各种数据类型纳入一个变量之下 A=为人民服务为人民服务,Wind Tom,100+250*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78A = 为人民服务为人民服务 Wind Tom 1.0000e+002 +2.5000e+002i 4x3 double 使用使用cellcell函数生成单元型变量函数生成单元型变量 B=cell(3);
45、%生成空生成空33的单元型变量的单元型变量 B1,1=富强富强 民主民主 ;文明文明 ,廉洁廉洁 % 给空单给空单元型变量写入数据元型变量写入数据B = 2x4 char 显示和提取显示和提取 单元型变量可直接显示单元型变量可直接显示 单元型变量内容的提取与数组元素提取的方单元型变量内容的提取与数组元素提取的方法相似,只是单元型变量单元内容需用法相似,只是单元型变量单元内容需用大大括号标识括号标识 A=为人民服务为人民服务,Wind Tom,100+250*i,90, 85, 55; 67, 70, 102; 57, 18, 100; -200, 89, 78 A(4) A4 %大括号标示单元
46、的内容大括号标示单元的内容 利用函数利用函数celldisp()显示单元型变量的内容显示单元型变量的内容 celldisp(A) A1 = 为人民服务为人民服务 A2 = Wind TomA3 = 1.0000e+002 +2.5000e+002i A4 = 90 85 55 67 70 102 57 18 100 -200 89 78 celldisp(A,ss) ss1 = 为人民服务为人民服务 ss2 = Wind Tomss3 = 1.0000e+002 +2.5000e+002i ss4 = 90 85 55 67 70 102 57 18 100 -200 89 78单元型变量的变
47、维处理单元型变量的变维处理 单元型变量的变维处理与矩阵的变维处单元型变量的变维处理与矩阵的变维处理完全一样,可以直接进行拼接,理完全一样,可以直接进行拼接, 也可以用函数也可以用函数reshape()来实现变维处理。来实现变维处理。关于单元的函数关于单元的函数MATLAB还提供了部分函还提供了部分函数用于单元的操作。数用于单元的操作。如:如:celldisp 显示单元矩阵内容显示单元矩阵内容 cell2struct 把单元矩阵转换为结构矩阵把单元矩阵转换为结构矩阵cellplot 显示单元矩阵的图形描述显示单元矩阵的图形描述struct2cell 把结构矩阵转换为单元矩阵把结构矩阵转换为单元矩
48、阵 班里有班里有9名同学他们的英语成绩如下:名同学他们的英语成绩如下:姓名:张姓名:张1,张张2,张张3,王王1,王王2,王王3,李李1,李李2,李李3学号:学号:2011001, 2011002, 2011003, 2011004, 2011005,2011006,2011007,2011008,2011009成绩:成绩:86、67、66、45、67、87、66、89、23要求:成绩按升序排列,并且姓名学号排在相应的名要求:成绩按升序排列,并且姓名学号排在相应的名次列?次列?课课 堂堂 练练 习习实例分析:实例分析:(1)、由于成绩是数值型,而姓名和学号都是字符)、由于成绩是数值型,而姓名和学号都是字符串型,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏南京大学XZ2026-036研究生院办公室文员招聘备考题库及答案详解(夺冠系列)
- 2026浙江省荣军医院特殊专业技术岗位招聘3人备考题库附参考答案详解(黄金题型)
- 2026安徽芜湖市第一人民医院第一次招聘劳务派遣人员16人备考题库附答案详解【典型题】
- 2026江苏南京大学SZXZ2026-009生物医学工程学院科研人员招聘备考题库及完整答案详解(易错题)
- 2026浙江嘉兴市桐乡市凤鸣高中招聘寝室生活管理人员若干名备考题库及参考答案详解【a卷】
- 2026浙江宁波市公安局海曙区分局招聘警务辅助人员78人备考题库附答案详解【考试直接用】
- 2026高校区域技术转移转化中心高端科学仪器深圳分中心招聘10人备考题库(第一批)及答案详解【有一套】
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及参考答案详解(新)
- 2026春季河北邯郸市曲周县博硕人才选聘87人备考题库带答案详解(b卷)
- 2026江西工业职业技术学院图书管理员岗位招聘1人备考题库带答案详解ab卷
- JJG1036-2022天平检定规程
- 河北高职单招第二大类历年真题及答案
- 超级单品成就超级品牌报告鸭鸭羽绒服解数咨询
- 2025年腹部外伤试题及答案
- 污水池清理专项安全施工技术方案
- 赛马比赛活动方案
- 江苏省专升本2025年美术学艺术概论试卷(含答案)
- 职业调查报告:室内设计行业分析
- 《农村供水水质管理技术导则》编制说明
- 牡丹养殖知识培训内容课件
- 第三节 管理在线学习资源教学设计小学信息科技川教版2024三年级下册-川教版2024
评论
0/150
提交评论