Matlab的基本计算学习课程_第1页
Matlab的基本计算学习课程_第2页
Matlab的基本计算学习课程_第3页
Matlab的基本计算学习课程_第4页
Matlab的基本计算学习课程_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

1、字符串数组字符串数组基本规则:基本规则:所有字符串都用单引号括起来;所有字符串都用单引号括起来;字符串中的每一个字符都是该字符串变量中的一字符串中的每一个字符都是该字符串变量中的一个元素;个元素;字符串中的字符以字符串中的字符以ASC码形式存储,因而码形式存储,因而区分大小写。区分大小写。第1页/共118页第一页,编辑于星期六:六点 五十七分。例 String1=b; String2=This is an example!;% 英文字母、空格、数字、标点、中文字符 String3=例子char array;% 都是占一个元素位,两个字节 s1=class(String1)s1 =char s2

2、=size(String2)s2 = 1 19 whos Name Size Bytes Class String1 1x1 2 char array String2 1x19 38 char array String3 1x14 28 char array s1 1x4 8 char array s2 1x2 16 double arrayGrand total is 26 elements using 64 bytes第2页/共118页第二页,编辑于星期六:六点 五十七分。字符串数组的属性和标字符串数组的属性和标识识1)创建串数组:“单引号对”必须在英文状态下输入。2)串数组的大小:siz

3、e指令获得串数组的大小。串中的每一个字符,包括中英文字符、空格、标点都算一个元素。3)串数组的标识:自左向右用数字1、2、3、4标识。4) ASCII码显示:abs和double指令可以显示串数组对应的ASCII码数值数组。char指令则可以把ASCII码数值数组转换成串数组。5) ASCII码数组的操作:可以对ASCII码数组进行数值数组的各种运算。注意:当字符串中包含单引号时,用连续两个单引号表示。第3页/共118页第三页,编辑于星期六:六点 五十七分。字符串数组的属性和标字符串数组的属性和标识识string=this is a example string= this is a exam

4、pleabs(string)ans = Columns 1 through 12 116 104 105 115 32 105 115 32 97 32 101 120 Columns 13 through 17 97 109 112 108 101double(string)ans = Columns 1 through 12 116 104 105 115 32 105 115 32 97 32 101 120 Columns 13 through 17 97 109 112 108 101char(abs(string)ans =this is a example第4页/共118页第四页

5、,编辑于星期六:六点 五十七分。串数组基本操作串数组基本操作 string = this is an example!%输入字符串stringstring =this is an example! s_1 = string( length(string) : -1 : 1 )%倒序排列string得到s_1s_1 =!elpmaxe na si siht w = string =a & string STRING = upper(string) %将小写字符转换成大写字符STRING =THIS IS AN EXAMPLE!Str= Exm03_2.m, string(5:end) %

6、构造新的字符串Str =Exm03_2.m is an example!第5页/共118页第五页,编辑于星期六:六点 五十七分。利用串转换函数创建字符串常用的有:int2str , num2str , mat2strint2str : 整数数组转换成字符串,非整数四舍五入。num2str : 非整数数组转换成字符串。mat2str : 数值数组转换成字符串。区别:a=0.9576 0.8 2.151; 4.0 5 7.8a =0.9576 0.8000 2.15104.0000 5.0000 7.8000a1=int2str( a ) %取整数作为字符a1 = 1 1 2 4 5 8a2=nu

7、m2str( a,2 )%2位有效数字a2 =0.96 0.8 2.2 4 5 7.8a3=mat2str( a,2 ) %一行字符a3 =0.96 0.8 2.2;4 5 7.8a3 =0.96 0.8 2.2;4 5 7.8a1/a2/a3-均为字符串第6页/共118页第六页,编辑于星期六:六点 五十七分。字符串的应用:作出函数图形,并标注最大值点。字符串的应用:作出函数图形,并标注最大值点。clear %清除内存变量t = 0 : 0.01 : 10; %时间 t 从 0 到 10 每隔 0.01 均匀采样y = exp( -2*t ) .* sin( 3*t ); %对应每一个 t 求

8、 y 值 y_max, i_max = max( y ); %求最大值 y_max 及其下标 i_maxt_text = t = , num2str( t(i_max) ) ; %横坐标字符串y_text = y = , num2str( y_max ) ; %纵坐标字符串max_text = char( Maxium, t_text, y_text ); %三行字符来标识最大值点Title = y = exp( -2*t ) .* sin( 3*t ) ; %图名称字符串figure %新建一个图形窗plot( t,zeros( size(t) ), k ) %画一条黑色的水平线hold o

9、n %保持图形不被清除plot( t, y, b )%蓝色实线画曲线 y(t)plot( t(i_max), y_max, r., MarkerSize, 20 ) %大小为 20 的红圆点标记最大值点text( t(i_max)+0.3, y_max+0.05, max_text ) %在最大值点附近显示注释字符title( Title ); %显示图名xlabel( t ) %显示横坐标名ylabel( y ) %显示纵坐标名hold off %取消图形保持2sin(3 ),010tyett 第7页/共118页第七页,编辑于星期六:六点 五十七分。y第8页/共118页第八页,编辑于星期六:

10、六点 五十七分。串转换函数串转换函数指令含义指令含义abs把串译成ASCII码base2decbase , bin , hex 与 dec 之间的转换base: 任意进制串bin: 二进制串hex: 十六进制串dec: 十进制整数char任意类型转换成串bin2decdouble任意类型转换成双精度数值hex2decfprintf格式化数据写到文件或屏幕dec2basesprintf以控制格式把数值转换为串dec2binsscanf在格式控制把串转换为数值dec2hexsetstr把ASCII码译成串int2str整数转换为串str2num串转换成数值mat2str数值矩阵转换为串hex2nu

11、m十六进制串转换成浮点数num2str数值转换为串第9页/共118页第九页,编辑于星期六:六点 五十七分。字符串操作函数字符串操作函数指令含义char ( s1, s2, )将串s1, s2, 逐个写成行,形成多行数组blanks ( n )创建n个空格构成的串deblank( s )删除串 s 尾部的空格strcat(s1 , s2, )把串 s1, s2, 连接成长串strncmp(s1,s2,n)比较字符串的前n个字符,若全相同返回逻辑1findstr在其它的字符串中寻找该字符串ischar ( s )若 s 是字符串,返回逻辑 1isletter ( s )返回逻辑数组指示串 s 中字

12、符的位置isspace ( s )返回逻辑数组指示串 s 中空格符的位置第10页/共118页第十页,编辑于星期六:六点 五十七分。元胞数组元胞数组特点:1)元胞数组的每一个基本组成部分成为一个元胞(cell),元胞在数组中以下标来进行区分。2)元胞可以是任何类型、任意大小的数组(例如:数值数组、字符串数组、符号对象等等)。3)一个元胞数组中各个元胞可以是不同类型的内容。4)元胞数组的维数不受限制。注意:圆括号对“( )”和花括号对“ ”的不同作用。A( 2,3 ):表示元胞数组A第 2 行第 3 列的元胞。A 2,3 :表示元胞数组A第 2 行第 3 列的元胞中的内容。第11页/共118页第十

13、一页,编辑于星期六:六点 五十七分。 1.直接生成法 A=4,test cell,10+20*I,1,2,3;4,5,6 A = 4 test cell 10.0000 +20.0000i 2x3 double 2.cell函数生成法 cell(N) 生成一个n*n阶的空元胞 cell(M,N) 生成一个m*n阶的空元胞 cell(M,N,L,) 生成一个m*n*l阶的空元胞 cell(size(A) 生成与A同形式的单元型的空矩阵第12页/共118页第十二页,编辑于星期六:六点 五十七分。 A=cell(2,2) A= A1,1=just a test A= just a test 第13页

14、/共118页第十三页,编辑于星期六:六点 五十七分。 C = char( 这是, 元胞数组 ); %两行的字符串数组 R = reshape( 1:9,3,3 ); % 3*3 的数值数组 S = sym( sin(-3*t)*exp(-t) ); %符号表达式 A( 1,1 ) = C ; %对元胞数组 A 进行赋值 A 2,2 = R; A 2,1 = S; %注意 和 () 的区别 A %显示元胞数组 A 的元胞A = 2x4 char 1x1 sym 3x3 doublecelldisp( A ) %显示元胞数组 A 的元胞中的内容A1,1 =这是 元胞数组 A2,1 = sin(-3

15、*t)*exp(-t) A1,2 = A2,2 = 1 4 7 2 5 8 3 6 9第14页/共118页第十四页,编辑于星期六:六点 五十七分。class( A(2,1) ) %元胞的类型 ()ans =cellclass( A2,1 ) %元胞的内容的类型 ans =symA( 2,1 ) % A 的第2行第1列的元胞ans = 1x1 symA 2,1 % A 的第2行第1列的元胞中的内容ans = sin(-3*t)*exp(-t) save exm03.mat%保存内存变量显示元胞数组内容的指令是 celldisp。如果直接在指令窗口输入元胞数组名,则只能看到元胞内容的属性,不显示元

16、胞的内容。单元素的元胞除外,可以显示元胞的内容。第15页/共118页第十五页,编辑于星期六:六点 五十七分。celldisp函数两种应用形式celldisp(A) %显示单元型变量A的内容celldisp(A,name) % 显示是name这个单元型变量的内容,而不是原来的A;例:celldisp(A,B) A1,1 = B1,1= 这是 这是 元胞数组 元胞数组 A2,1= B2,1= A1,2= B1,2= A2,2= B2,2= 第16页/共118页第十六页,编辑于星期六:六点 五十七分。结构数组结构数组特点:1)基本组成部分是结构(Structure),以下标区分各个结构。2) 结构必

17、须划分成“域”后才能使用。3)结构不能直接存放数据,数据必须存放在结构下面的“域”中。4)结构的域可以存放任意类型、任意大小的数组(数值数组、字符串数组、符号对象、元胞等)。5)不同结构的同名域中可以存放不同类型的内容。6)结构数组可以是任意维的,可以利用下标寻址。第17页/共118页第十七页,编辑于星期六:六点 五十七分。结构数组的生成结构数组的生成1直接输入法。直接输入法。 例:建立学生的小型数据库例:建立学生的小型数据库student.test=99 56 96 87 67 69 87 76 92;=zhaizhigang;student.weight=67;st

18、udent.height=1.83;student.num=20080126;student.add=Hei Long Jiang;studentStudent= test=99 56 96 87 67 69 87 76 92 name=zhaizhigang weight=67 height=1.83 num=20080126 add=Hei Long Jiang第18页/共118页第十八页,编辑于星期六:六点 五十七分。结构数组的生成结构数组的生成2使用使用struct函数。函数。 struct(field1,v1,field2,v2,)Student= test=99 56 96 87

19、67 69 87 76 92 name=zhaizhigang weight=67 height=1.83 num=20080126 add=Hei Long Jiang第19页/共118页第十九页,编辑于星期六:六点 五十七分。q 输出格式输出格式Matlab 的输的输出出u Matlab 以双精度执行所有的运算,运算结果以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量指定变量,则系统会自动将结果赋给变量 “ans” u Matlab 中数的输出格式可以通过中数的输出格式可以通过 format

20、 命令指命令指定定format 只改变变量的输出格式,只改变变量的输出格式,但不会影响变量的值但不会影响变量的值!第20页/共118页第二十页,编辑于星期六:六点 五十七分。各种各种 format 格式格式格式解释例format短格式(缺省显示格式),同short3.1416format short短格式(缺省显示格式),只显示5位3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.141592653589793e+000fo

21、rmat short g短格式g方式3.1416format long g长格式g方式3.14159265358979format compact压缩格式format loose自由格式format bank / format rat / format hex (银行/有理数/十六进制)第21页/共118页第二十一页,编辑于星期六:六点 五十七分。(二)(二)Matlab的基本计算功能的基本计算功能可直接在命令窗内输入表达式进行计算Matlab带有强大的函数库,一般的数学运算都能容易的实现第22页/共118页第二十二页,编辑于星期六:六点 五十七分。例输入矩阵 a=2,3,4;3,5,7;8,

22、9,10; b=1 1 1; 2 2 2;3 3 3; c=a+bc = 3 4 5 5 7 9 11 12 13第23页/共118页第二十三页,编辑于星期六:六点 五十七分。MATLAB典典型函数型函数含义含义MATLAB典型函数典型函数含义含义abs(x)求绝对值求绝对值tan(x)正切值正切值sqrt(x)求平方根值求平方根值cot(x)余切值余切值exp(x)指数运算指数运算atan(x)反正切值反正切值sin(x)正弦值正弦值acot(x)反余切值反余切值cos(x)余弦值余弦值log(x)自然对数自然对数asin(x)反正弦值反正弦值Log2(x)以以2为底的对数为底的对数acos

23、(x)反余弦值反余弦值 Log10(x) MATLAB软件中部分常用函数表软件中部分常用函数表以10为底的对数第24页/共118页第二十四页,编辑于星期六:六点 五十七分。 例计算 和 2*cos(0.3*pi)/(1+sqrt(7) 调出上次的输入 或移动光标,将3改为4 Enter键,给出计算结果2cos(0.3* )172cos(0.4* )17第25页/共118页第二十五页,编辑于星期六:六点 五十七分。(三)(三)Matlab矩阵和数组的创建和矩阵和数组的创建和修改修改 1. 矩阵的创建和修改1.1直接输入矩阵的创建 规则: 矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内

24、矩阵的行与行之间必须用分号分隔或按Enter键分割第26页/共118页第二十六页,编辑于星期六:六点 五十七分。矩阵元素矩阵元素 矩阵元素可以是数字或任何matlab表达式 ,表达式不可包含未知的变量;可以是实数 ,也可以是复数,复数可用特殊函数i,j 输入。 例:1. a=1 2 3;4 5 6 2. b=2 pi/2;sqrt(3) 3+5i 3. x=9; y=pi/6; %定义x,y变量 A=3 5 sin(y) cos(y) x2 7 x/2 5 1 %产生矩阵A说明:%为Matlab注释的开始标志,后面的文字不进行计算 第27页/共118页第二十七页,编辑于星期六:六点 五十七分。

25、 矩阵的修改矩阵的修改 直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。第28页/共118页第二十八页,编辑于星期六:六点 五十七分。例如例如 a=1 2 0;3 0 5;7 8 9a =1 2 0 3 0 5 7 8 9 a(3,3)=0a =1 2 0 3 0 5 7 8 0第29页/共118页第二十九页,编辑于星期六:六点 五十七分。1.2 用用matlab函数创建和修改矩阵函数创建和修改矩阵 Matlab提供了大量的函数来创建一些常用的特殊矩阵,例如对角阵、单位阵和零矩阵 例:0-1分布的随机矩阵,利用rand函数产生任意

26、行列的随机矩阵 a=rand(5,5)第30页/共118页第三十页,编辑于星期六:六点 五十七分。例例2-2 利用利用diag产生对角阵产生对角阵 diag(M)M为矩阵或向量,对于矩阵,取为矩阵或向量,对于矩阵,取对角元产生一个列对角元产生一个列 向量;对于向量则产生一个对角阵向量;对于向量则产生一个对角阵 a=rand(5,5)a = 0.7027 0.7948 0.9797 0.1365 0.6614 0.5466 0.9568 0.2714 0.0118 0.2844 0.4449 0.5226 0.2523 0.8939 0.46920.6946 0.8801 0.8757 0.19

27、91 0.06480.6213 0.1730 0.7373 0.2987 0.9883 D=diag(d) %向量产生矩阵D = 0.7027 0 0 0 0 0 0.9568 0 0 0 0 0 0.2523 0 0 0 0 0 0.1991 0 0 0 0 0 0.9883 d=diag(a) %矩阵产生列向量d = 0.7027 0.9568 0.2523 0.1991 0.9883第31页/共118页第三十一页,编辑于星期六:六点 五十七分。Matlab中用于产生特殊矩阵的函数中用于产生特殊矩阵的函数 zeros(m,n) mn的零矩阵,全部元素都为0 ones(m,n) 全部元素都为

28、1的mn的矩阵 rand(m,n) 随机矩阵 eye(m,n) 单位矩阵 magic(n) n维magic方阵 matlab允许输入空阵,当一项操作无结果时,返回空阵。第32页/共118页第三十二页,编辑于星期六:六点 五十七分。 还有伴随矩阵、稀疏矩阵、范德蒙等矩阵的创建等等注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。 matlab函数名必须小写。第33页/共118页第三十三页,编辑于星期六:六点 五十七分。2 .矩阵标识和子矩阵矩阵标识和子矩阵 子阵的序号向量标识方式a(m,n),m,n大于等于1小于矩阵的维数; a(L1,:) 、a(:,L2)、a(L1,L2)第3

29、4页/共118页第三十四页,编辑于星期六:六点 五十七分。 B=magic(5) B = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 B1=B(1:2,1,3,5) B1 = 17 1 15 23 7 16 B(1,3,2,4)=zeros(2)B = 17 0 1 0 15 23 5 7 14 16 4 0 13 0 22 10 12 19 21 3 11 18 25 2 9 B2=B(1,3,:)B2 = 17 24 1 8 15 4 6 13 20 22第35页/共118页第三十五页,编辑于星期六:六

30、点 五十七分。3. 矩阵的运算3.1. 矩阵加、减(,)运算规则: 相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。MATLAB表达式加a+b减a-b乘a*b除a/b 或 ab幂ab第36页/共118页第三十六页,编辑于星期六:六点 五十七分。3.2. 矩阵乘()运算规则: A矩阵的列数必须等于B矩阵的行数例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*d f = -3.1416 0 6.2832第37页/共118页第

31、三十七页,编辑于星期六:六点 五十七分。在matlab中矩阵除的运算有两种矩阵除运算MATLAB用“/” 代表右除(常用除法)和“”左除运算。这两种运算的差别如下:例如:2/5 表示0.4, 25 表示2.5;对于矩阵,A/B 表示AB-1,即A*inv(B);BA 表示B-1A,即inv(B)*A。矩阵除法可以看作矩阵乘法的逆运算3.3. 矩阵除运算第38页/共118页第三十八页,编辑于星期六:六点 五十七分。例例左除解方程组左除解方程组ax=b的解的解 :x=ab a=rand(5); %产生(5*5)的均匀分布随机矩阵 b=ones(5,1); %产生全为1的5元列向量 x1=inv(a

32、)*b x1 = -0.1734 0.5573 0.0309 0.7208 0.8147 x2=ab x2 = -0.1734 0.5573 0.0309 0.7208 0.8147第39页/共118页第三十九页,编辑于星期六:六点 五十七分。3.4 矩阵乘方矩阵乘方 an,ap,pa a p a 自乘p次幂 方阵方阵1的整数的整数对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量ap使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,ap则无意义。第40页/共118页第四十页,编辑于星期六:六点 五十七分。 a=1,2,3;4,5,6;7,8,9;a2 ans =30 36

33、42 66 81 96 102 126 150当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。第41页/共118页第四十一页,编辑于星期六:六点 五十七分。 a0.5 ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i第42页/共118页第四十二页,编辑于星期六:六点 五十七分。3.5. 矩阵的其它运算矩阵的其它运算 inv

34、矩阵求逆 size 矩阵的大小(行列数) det 行列式的值 eig 矩阵的特征值 rank 矩阵的秩 矩阵转置 sqrt 矩阵开方 svd矩阵的奇异值分解第43页/共118页第四十三页,编辑于星期六:六点 五十七分。3.6.矩阵的一些特殊操作矩阵的一些特殊操作 矩阵的变维 a=1:12;b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角第44页/共118页第四十四页,编辑于星期六:六点 五十七分。a=1:

35、12a = 1 2 3 4 5 6 7 8 9 10 11 12b=reshape(a,3,4)b = 1 4 7 10 2 5 8 11 3 6 9 12c=zeros(3,4);c(:)=a(:)c = 1 4 7 10 2 5 8 11 3 6 9 12第45页/共118页第四十五页,编辑于星期六:六点 五十七分。4.数组的建立和运算数组的建立和运算所有矩阵创建和修改的方法适用于数组,数组的计算强调元素间的运算1)Matlab提供了创建数组的命令(:或linspace):例: a=0:0.2:1a = 0 0.2000 0.4000 0.6000 0.8000 1.0000 x=lins

36、pace(0,1,10) %利用linspace产生间隔起始值0,终止值1,元素数为10的数组x = 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.000第46页/共118页第四十六页,编辑于星期六:六点 五十七分。数组的运算数组的运算元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同1. 数组加减(.+,.-) a.+b a.- b对应元素相加减(与矩阵加减等效)对应元素相加减(与矩阵加减等效)2. 数组的运算x(3) 表示x的第3个元素x(1:5) 表示x的第1到第5个元素构成的数组 x(1:2:5

37、) x(2,1,4) 第47页/共118页第四十七页,编辑于星期六:六点 五十七分。2. 数组乘除(,./,.)ab a,b两数组必须有相同的行 和列 两数组相应元素相乘。a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a.*bans = 2 8 18 4 15 30 49 72 90 第48页/共118页第四十八页,编辑于星期六:六点 五十七分。a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a*bans = 25 37 46 55 85 109 85 133 172 第49页/共118页第四十九页,编辑于星期六:六点 五十

38、七分。a./b=b.aa.b=b./aa./b=b.a 都是a的元素被b的对应元 素除a.b=b./a 都是b的元素被a的对应元 素除例: a=1 2 3;b=4 5 6; c1=a.b; c2=b./ac1 = 4.0000 2.5000 2.0000c2 = 4.0000 2.5000 2.0000 给出a,b对应元素间的商.第50页/共118页第五十页,编辑于星期六:六点 五十七分。3. 数组乘方(.) 元素对元素的幂例:a=1 2 3;b=4 5 6;z=a.2z = 1.00 4.00 9.00z=a.bz = 1.00 32.00 729.00第51页/共118页第五十一页,编辑于

39、星期六:六点 五十七分。常用矩阵、向量运算求最大值和最小值求和与求积求平均值和标准方差、中值与相关系数排序向量的基本运算第52页/共118页第五十二页,编辑于星期六:六点 五十七分。(一一) 求最大值和最小值求最大值和最小值(1) y=max(X):返回向量:返回向量X的最大值存入的最大值存入y,如果,如果X中包含复中包含复数元素,则按模取最大值。数元素,则按模取最大值。MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min1求向量的最大值和最小值 求一个向量X的最大值的函数有两种调用格式,分别是:(2) y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果

40、X中包含复数元素,则按模取最大值。求向量X的最小值的函数是min(X),用法和max(X)完全相同。第53页/共118页第五十三页,编辑于星期六:六点 五十七分。例例 求向量求向量x x的最大值。的最大值。命令如下:命令如下: x=-43,72,9,16,23,47; x=-43,72,9,16,23,47; y=max(x) % y=max(x) %求向量求向量x x中的最大值中的最大值y =y = 72 72y,l=max(x) %y,l=max(x) %求向量求向量x x中的最大值及其该元中的最大值及其该元素的位置素的位置y = 72y = 72l = 2l = 2第54页/共118页第

41、五十四页,编辑于星期六:六点 五十七分。2求矩阵的最大值和最小值求矩阵的最大值和最小值(2) Y,U=max(A)(2) Y,U=max(A):返回行向量:返回行向量Y Y和和U U,Y Y向量记录向量记录A A的每列的最的每列的最大值,大值,U U向量记录每列最大值的行号。向量记录每列最大值的行号。求矩阵A A的最大值的函数有3 3种调用格式,分别是:(3) max(A,dim)(3) max(A,dim):dimdim取1 1或2 2。dimdim取1 1时,该函数和max(A)max(A)完全相同;dimdim取2 2时,该函数返回一个列向量,其第i i个元素是A A矩阵的第i i行上的

42、最大值。求最小值的函数是minmin,其用法和maxmax完全相同。(1) y=max(A)(1) y=max(A):返回一个行向量,向量的第i i个元素是矩阵A A的第i i列上的最大值。第55页/共118页第五十五页,编辑于星期六:六点 五十七分。 a=9,6,7;20,9,2;15,13,0;3,4,6a = 9 6 7 20 9 2 15 13 0 3 4 6 y=max(a) %每列的最大值每列的最大值 y = 20 13 7 y,u=max(a) %每列的最大值及下标每列的最大值及下标 y = 20 13 7 u = 2 3 1 max(a,2) %dim=2,每行的最大值,每行的

43、最大值 ans = 9 20 15 6例 分别求34矩阵中各列和各行元素中的最大值第56页/共118页第五十六页,编辑于星期六:六点 五十七分。3两个向量或矩阵对应元素的比较两个向量或矩阵对应元素的比较函数maxmax和minmin还能对两个同型的向量或矩阵进行比较,调用格式为:(1) U=max(A,B)(1) U=max(A,B):A,BA,B是两个同型的向量或矩阵,结果U U是与A,BA,B同型的向量或矩阵,U U的每个元素等于A,BA,B对应元素的较大者。(2) U=max(A,n)(2) U=max(A,n):n n是一个标量,结果U U是与A A同型的向量或矩阵,U U的每个元素等

44、于A A对应元素和n n中的较大者。minmin函数的用法和maxmax完全相同。第57页/共118页第五十七页,编辑于星期六:六点 五十七分。 a=9,6,7;20,9,2 a = 9 6 7 20 9 2 b=15,13,0;3,4,6 b = 15 13 0 3 4 6 u=max(a,b) %找出同一位置的最大值找出同一位置的最大值 u = 15 13 7 20 9 6例 求两个23矩阵a, b所有同一位置上的较大元素构成的新矩阵p。v u=max(a,8) vu =v 9 8 8v 20 9 8第58页/共118页第五十八页,编辑于星期六:六点 五十七分。(二)求和与求积(二)求和与

45、求积sum(X):返回向量:返回向量X各元素的和。各元素的和。prod(X):返回向量:返回向量X各元素的乘积。各元素的乘积。sum(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的元素和。列的元素和。prod(A):返回一个行向量,其第:返回一个行向量,其第i个元素是个元素是A的第的第i列的元素乘列的元素乘积。积。sum(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于sum(A);当;当dim为为2 时,返回一个列向量,其第时,返回一个列向量,其第i个元素是个元素是A的第的第i行的各元素之行的各元素之和。和。prod(A,dim):当:当d

46、im为为1时,该函数等同于时,该函数等同于prod(A);当;当dim为为2时,返回一个列向量,其第时,返回一个列向量,其第i个元素是个元素是A的第的第i行的各元素乘行的各元素乘积。积。数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为:在MATLAB中,使用cumsum和cumprod函数能方便地求得向量和矩阵元素的累加和与累乘积向量,调用格式同上第59页/共118页第五十九页,编辑于星期六:六点 五十七分。例例 求矩阵求矩阵A的每行元素的乘积和全的每行元素的乘积和全部元素的乘积。部元素的乘积。 a=1,2,3;4,5,6 a = 1

47、2 3 4 5 6 a_s=sum(a) %每每列之和列之和 a_s = 5 7 9 a_s2=sum(a,2) %dim=2,每行之和,每行之和 a_s2 = 6 15 a_p=prod(a) %每每列之积列之积 a_p = 4 10 18 a_p2=prod(a,2) %每行每行之积之积 a_p2 = 6 120%累加和举例cumsum函数 a=1,2,3;4,5,6;3,4,5a = 1 2 3 4 5 6 3 4 5 a_cs=cumsum(a) %求每列的累加和a_cs = 1 2 3 5 7 9 8 11 14第60页/共118页第六十页,编辑于星期六:六点 五十七分。求数据序列平

48、均值的函数是求数据序列平均值的函数是meanmean求数据序列标准方差的函数是求数据序列标准方差的函数是stdstd求数据序列中值的函数是求数据序列中值的函数是medianmediancorrcoefcorrcoef函数可求出数据的相关系数矩阵函数可求出数据的相关系数矩阵(三)求平均值和标准方差、中值与相关系数第61页/共118页第六十一页,编辑于星期六:六点 五十七分。例例 生成满足正态分布的生成满足正态分布的100005随机矩阵,然后求各列元素的均随机矩阵,然后求各列元素的均值和标准方差。值和标准方差。命令如下:命令如下:X=randn(10000,5)M=mean(X)D=std(X)第

49、62页/共118页第六十二页,编辑于星期六:六点 五十七分。具体计算结果:具体计算结果: X=randn(10000,5); M=mean(X) M = 0.0148 -0.0149 -0.0026 -0.0067 -0.0037 D=std(X) D = 0.9940 1.0024 1.0098 1.0044 1.0043第63页/共118页第六十三页,编辑于星期六:六点 五十七分。(四)排序(四)排序MATLAB中对向量中对向量X是排序函数是是排序函数是sort(X),函数返,函数返回一个对回一个对X中的元素按升序排列的新向量。中的元素按升序排列的新向量。sort函数也可以对矩阵函数也可以

50、对矩阵A的各列或各行重新排序,其的各列或各行重新排序,其调用格式为:调用格式为:Y,I=sort(A,dim) 其中其中dim指明对指明对A的列还是行进行排序。若的列还是行进行排序。若dim=1,则按列排;若,则按列排;若dim=2,则按行排。,则按行排。Y是排是排序后的矩阵,而序后的矩阵,而I记录记录Y中的元素在中的元素在A中位置。中位置。第64页/共118页第六十四页,编辑于星期六:六点 五十七分。 a=10,2,3;41,25,6;3,1,5 a = 10 2 3 41 25 6 3 1 5 a_s=sort(a) %按列进行从小到大排序a_s = 3 1 3 10 2 5 41 25

51、6 a_s,I=sort(a) % I给出排序后各元素在原始矩阵中所在的行I = 3 3 1 1 1 3 2 2 2 a_s=sort(a,2) %按行进行排序a_s = 2 3 10 6 25 41 1 3 5例 对矩阵做各种排序第65页/共118页第六十五页,编辑于星期六:六点 五十七分。(五)向量的基本运算(五)向量的基本运算1,向量与数的四则运算,向量与数的四则运算 加减法加减法 乘除法乘除法例例:vec=linspace(10,50,5); vec+100 ans = 110 120 130 140 150向量中每个元素与数进行操作vec*2ans=20 40 60 80 100第6

52、6页/共118页第六十六页,编辑于星期六:六点 五十七分。(五)向量的基本运算(五)向量的基本运算2,向量与向量的加减法,向量与向量的加减法 向量中的每个元素与另一个向量中相对应的向量中的每个元素与另一个向量中相对应的元素加减元素加减3,点积、叉积和混合积,点积、叉积和混合积 dot(v1,v2); cross(v1,v2); 函数函数例:例:v1=1,3,5; v2=2,4,6; v3=1,2,5; dot(v1,v2)ans = 2 12 30 dot(v1,cross(v2,v3)ans= -4 cross(v1,v2)ans=-2 4 -2cross(v2,v1)ans=2 -4 2第

53、67页/共118页第六十七页,编辑于星期六:六点 五十七分。(三)(三)Matlab的高级数值计算的高级数值计算 关系运算关系运算 逻辑运算逻辑运算 多项式计算多项式计算 曲线拟合曲线拟合 数据插值数据插值 离散傅立叶变换离散傅立叶变换 方程组求解方程组求解 如何使用稀疏矩阵如何使用稀疏矩阵第68页/共118页第六十八页,编辑于星期六:六点 五十七分。1.关系运算关系运算 运算法则 两个变量是标量a和b时,则如果关系成立,结果为1,否则为0; 两个维数相同的数组A和B时,比较相同位置的元素,按标量运算规则逐个进行; 维数相同的数组A和标量b时,把标量b与数组中的每一个元素逐个比较; 优先级:高

54、到低为算术运算、关系运算、逻辑运算第69页/共118页第六十九页,编辑于星期六:六点 五十七分。关系运算符关系运算符 关系符号意义=小于小于或等于大于大于或等于等于不等于第70页/共118页第七十页,编辑于星期六:六点 五十七分。例:例: a=2 3 4 5 6 7 8; b=6 5 4 3 2 1 0; t=a4 t = 0 0 0 1 1 1 1 t1=(a=b) t1 = 0 0 1 0 0 0 0 说明:=和=的不同:=比较两个变量,相等时返回1,否则,返回0;=示将结果赋给一个变量第71页/共118页第七十一页,编辑于星期六:六点 五十七分。2.逻辑运算逻辑运算 逻辑运算符逻辑运算符 & 与与 (and) | 或或 (or) 非非 (not)第72页/共118页第七十二页,编辑于星期六:六点 五十七分。例:例: a=2 3 4 5 6 7 8; t=(a4) %不大于4的元素 t = 1 1 1 0 0 0 0 t=(a2)&(a6) %找出2a 2) ans = 3 8 9第75页/共118页第七十五页,编辑于星期六:六点 五十七分。例:s=2 1 0 4 0; any(y) A=1 2 3;0 1 0;4 5 6;t=1 0 -1 3 0; ans= B=1 2 3;4 5 6;7 8 9;x=1 2 3 4; 1 xor(A,B)y=

温馨提示

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

评论

0/150

提交评论