第二讲 Matlab的基本计算.ppt

上传人:hwp****526 文档编号:84386476 上传时间:2023-04-05 格式:PPT 页数:71 大小:561.50KB
返回 下载 相关 举报
第二讲 Matlab的基本计算.ppt_第1页
第1页 / 共71页
第二讲 Matlab的基本计算.ppt_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《第二讲 Matlab的基本计算.ppt》由会员分享,可在线阅读,更多相关《第二讲 Matlab的基本计算.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、四种基本数组类型:数值、字符、元胞、结构数组。数组类型基本组分组分内容基本组分占用字节数数值数组(Numeric Array)元素双精度实数标量(MATLAB系统默认)双精度复数标量816字符串数组(Character String Array)元素字符2元胞数组(Cell Array)元胞可以存放任意类型、任意大小的数据不定结构数组(Structure Array)结构只有结构的“域”可以存放数据,数据可以是任意类型、任意大小。不定数据类型字符串数组v基本规则:基本规则:所有字符串都用所有字符串都用单引号单引号括起来;括起来;字符串中的字符串中的每一个字符每一个字符都是该字符串变量都是该字符

2、串变量中的中的一个元素一个元素;字符串中的字符以字符串中的字符以ASC码码形式存储,因形式存储,因而而区分大小写区分大小写。例 String1=b;String2=This is an example!;%英文字母、空格、数字、标点、中文字符 String3=例子char array;%都是占一个元素位,两个字节 s1=class(String1)s1=char s2=size(String2)s2=1 19 whos Name Size Bytes Class String1 1x1 2 char array String2 1x19 38 char array String3 1x14 2

3、8 char array s1 1x4 8 char array s2 1x2 16 double arrayGrand total is 26 elements using 64 bytes1)创建串数组:“单引号对”必须在英文状态下输入。2)串数组的大小:size指令获得串数组的大小。串中的每一个字符,包括中英文字符、空格、标点都算一个元素。3)串数组的标识:自左向右用数字1、2、3、4标识。4)ASCII码显示:abs和double指令可以显示串数组对应的ASCII码数值数组。char指令则可以把ASCII码数值数组转换成串数组。5)ASCII码数组的操作:可以对ASCII码数组进行数值

4、数组的各种运算。注意:当字符串中包含单引号时,用连续两个单引号表示。字符串数组的属性和标识字符串数组的属性和标识字符串数组的属性和标识字符串数组的属性和标识 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

5、 IS AN EXAMPLE!Str=Exm03_2.m,string(5:end)%构造新的字符串构造新的字符串Str=Exm03_2.m is an example!串数组基本操作串数组基本操作利用串转换函数创建字符串常用的有:int2str,num2str,mat2strint2str :整数数组转换成字符串,非整数四舍五入。num2str:非整数数组转换成字符串。mat2str :数值数组转换成字符串。区别:a=0.9576 0.8 2.151;4.0 5 7.8a1=int2str(a)%取整数作为字符a2=num2str(a,2)%2位有效数字a3=mat2str(a,2)%一行字

6、符a=0.9576 0.8000 2.15104.0000 5.0000 7.8000a1=1 1 24 5 8a2=0.96 0.8 2.2 4 5 7.8a3=0.96 0.8 2.2;4 5 7.8a1/a2/a3-均为字符串clear t=0:0.01:10;y=exp(-2*t).*sin(3*t);y_max,i_max =max(y);t_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);figurepl

7、ot(t,zeros(size(t),k)hold onplot(t,y,b)plot(t(i_max),y_max,r.,MarkerSize,20)text(t(i_max)+0.3,y_max+0.05,max_text)title(Title);xlabel(t)ylabel(y)hold off%清除内存变量%时间 t 从 0 到 10 每隔 0.01 均匀采样%对应每一个 t 求 y 值%求最大值 y_max 及其下标 i_max%横坐标字符串%纵坐标字符串%三行字符来标识最大值点%图名称字符串%新建一个图形窗%画一条黑色的水平线%保持图形不被清除%蓝色实线画曲线 y(t)%大小为

8、 20 的红圆点标记最大值点%在最大值点附近显示注释字符%显示图名、横坐标名、纵坐标名%取消图形保持字符串的应用:作出函数图形,并标注最大值点。字符串的应用:作出函数图形,并标注最大值点。y串转换函数串转换函数串转换函数串转换函数指令含义指令含义abs把串译成ASCII码base2decbase,bin,hex 与 dec 之间的转换base:任意进制串bin:二进制串hex:十六进制串dec:十进制整数char任意类型转换成串bin2decdouble任意类型转换成双精度数值hex2decfprintf格式化数据写到文件或屏幕dec2basesprintf以控制格式把数值转换为串dec2bi

9、nsscanf在格式控制把串转换为数值dec2hexsetstr把ASCII码译成串int2str整数转换为串str2num串转换成数值mat2str数值矩阵转换为串hex2num十六进制串转换成浮点数num2str数值转换为串字符串操作函数字符串操作函数指令含义char(s1,s2,)将串s1,s2,逐个写成行,形成多行数组blanks(n)创建n个空格构成的串deblank(s)删除串 s 尾部的空格eval(s)把串 s 当作MATLAB指令来执行eval(s1,sc)执行 s1 包含的指令,若s1错误,执行scfeval(f,x,y,)对输入 x,y 执行函数 fischar(s)若

10、s 是字符串,返回逻辑 1isletter(s)返回逻辑数组指示串 s 中字符的位置isspace(s)返回逻辑数组指示串 s 中空格符的位置strcat(s1,s2,)把串 s1,s2,连接成长串strcmp(s1,s2)比较串 s1,s2,若相同,返回逻辑1元胞数组元胞数组特点:1)元胞数组的每一个基本组成部分成为一个元胞(cell),元胞在数组中以下标来进行区分。2)元胞可以是任何类型、任意大小的数组(例如:数值数组、字符串数组、符号对象等等)。3)一个元胞数组中各个元胞可以是不同类型的内容。4)元胞数组的维数不受限制。注意:圆括号对“()”和花括号对“”的不同作用。A(2,3):表示元

11、胞数组A第 2 行第 3 列的元胞。A 2,3:表示元胞数组A第 2 行第 3 列的元胞中的内容。v C=char(这是,元胞数组);%两行的字符串数组vR=reshape(1:9,3,3);%3*3 的数值数组vS=sym(sin(-3*t)*exp(-t);%符号表达式vA(1,1)=C;%对元胞数组 A 进行赋值vA 2,2 =R;vA 2,1 =S;%注意 和()的区别v A%显示元胞数组 A 的元胞A=2x4 char 1x1 sym 3x3 doublecelldisp(A)%显示元胞数组 A 的元胞中的内容A1,1=这是 元胞数组 A2,1=sin(-3*t)*exp(-t)A1

12、,2=A2,2=1 4 7 2 5 8 3 6 9当用当用当用当用圆括号来寻址时,所表示圆括号来寻址时,所表示圆括号来寻址时,所表示圆括号来寻址时,所表示的是元胞,相应的等号右边也的是元胞,相应的等号右边也的是元胞,相应的等号右边也的是元胞,相应的等号右边也应该是一个元胞;应该是一个元胞;应该是一个元胞;应该是一个元胞;当用花括号寻址时,表示的是当用花括号寻址时,表示的是当用花括号寻址时,表示的是当用花括号寻址时,表示的是元胞中的内容,相应的等号右元胞中的内容,相应的等号右元胞中的内容,相应的等号右元胞中的内容,相应的等号右边是元胞中的内容,可以是任边是元胞中的内容,可以是任边是元胞中的内容,

13、可以是任边是元胞中的内容,可以是任意类型、大小的数组。意类型、大小的数组。意类型、大小的数组。意类型、大小的数组。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。如果直接在指令窗口输入元胞数组名,则只能看到元胞内容的属性,不显示元胞的内容。单元素的元胞除外,可以显示元胞的内容。结构数组结构数组特点:1)

14、基本组成部分是结构(Structure),以下标区分各个结构。2)结构必须划分成“域”后才能使用。3)结构不能直接存放数据,数据必须存放在结构下面的“域”中。4)结构的域可以存放任意类型、任意大小的数组(数值数组、字符串数组、符号对象、元胞等)。5)不同结构的同名域中可以存放不同类型的内容。6)结构数组可以是任意维的,可以利用下标寻址。结构数组的基本操作结构数组的基本操作已知:已知:2输入输入2输出的输出的LTI线性时不变系统的系统传递函数,线性时不变系统的系统传递函数,利用表示该传递函数的结构数组来练习结构数组的基本操作。利用表示该传递函数的结构数组来练习结构数组的基本操作。%1.创建代表创

15、建代表2输入输入2输出系统的传递函数的结构数组输出系统的传递函数的结构数组clearnum=3,2;41,1;%分子系数构成的元胞数组分子系数构成的元胞数组den=1,3,2,1,1,1;1221,10;%分母系数构成的元胞数组分母系数构成的元胞数组ss=tf(num,den);%利用控制工具箱函数产生传递函数矩阵利用控制工具箱函数产生传递函数矩阵SST=struct(ss)%将传递函数矩阵转换成结构数组将传递函数矩阵转换成结构数组SST=num:2x2 cell%元胞数组 den:2x2 cell%元胞数组 Variable:s%字符串 lti:1x1 lti%lti系统FN=fieldna

16、mes(SST)%获取域名,以元胞数组的形式保存FN=num den Variable lticlass(FN)ans=cellq输出格式输出格式Matlab 的输出u Matlab 以双精度执行所有的运算,运算结果可以以双精度执行所有的运算,运算结果可以在在屏幕上输出屏幕上输出,同时,同时赋给指定变量;赋给指定变量;若无指定变量,则系若无指定变量,则系统会自动将结果赋给变量统会自动将结果赋给变量“ans”u Matlab 中数的输出格式可以通过中数的输出格式可以通过 format 命令指定命令指定format只改变变量的输出格式,只改变变量的输出格式,但不会影响变量的值但不会影响变量的值!格

17、式解释例format短格式(缺省显示格式),同short3.1416format short短格式(缺省显示格式),只显示5位3.1416format long长格式,双精度数15位,单精度数7位3.14159265358979format short e短格式e方式(科学计数格式)3.1416e+000format long e长格式e方式3.141592653589793e+000format short g短格式g方式3.1416format long g长格式g方式3.14159265358979format compact压缩格式format loose自由格式format bank

18、 /format rat/format hex (银行/有理数/十六进制)各种 format 格式v可直接在命令窗内输入表达式进行计算(二)Matlab的基本计算功能v例输入矩阵v a=2,3,4;3,5,7;8,9,10;v b=1 1 1;2 2 2;3 3 3;v c=a+bvc=v 3 4 5v 5 7 9v 11 12 13vMatlab带有强大的函数库,一般的数学运算都能容易的实现MATLAB典典型函数型函数含义含义MATLAB典型函数典型函数含义含义abs(x)求绝对值求绝对值tan(x)正切值正切值sqrt(x)求平方根值求平方根值cot(x)余切值余切值exp(x)指数运算指

19、数运算atan(x)反正切值反正切值sin(x)正弦值正弦值acot(x)反余切值反余切值cos(x)余弦值余弦值log(x)自然对数自然对数asin(x)反正弦值反正弦值Log2(x)以以2为底的对数为底的对数acos(x)反余弦值反余弦值Log10(x)MATLAB软件中部分常用函数表软件中部分常用函数表以以10为底的对数为底的对数v例计算 和v 2*cos(0.3*pi)/(1+sqrt(7)v调出上次的输入v 或移动光标,将3改为4vEnter键,给出计算结果(三)Matlab矩阵和数组的创建和修改v1.矩阵的创建和修改1.1直接输入矩阵的创建v规则:v 矩阵元素必须用 括住v 矩阵元

20、素必须用逗号或空格分隔 v 在 内矩阵的行与行之间必须用分号分隔或按Enter键分割 矩阵元素可以是数字或任何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注释的开始标志,后面的文字不进行计算 矩阵元素 矩阵的修改v 直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改 可以用A(,)=来修改

21、。例如例如 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 01.2用matlab函数创建和修改矩阵vMatlab提供了大量的函数来创建一些常用的特殊矩阵,例如对角阵、单位阵和零矩阵v例:0-1分布的随机矩阵,利用rand函数产生任意行列的随机矩阵v a=rand(5,5)例2-2 利用diag产生对角阵 diag(M)M为矩阵或向量,对于矩阵,取对角元产生一个列 向量;对于向量则产生一个对角阵v a=rand(5,5)va=v 0.7027 0.7948 0.9797 0.1365 0.6614v 0.5466

22、 0.9568 0.2714 0.0118 0.2844v 0.4449 0.5226 0.2523 0.8939 0.4692v 0.6946 0.8801 0.8757 0.1991 0.0648v 0.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.9883Matlab中用于产生特殊矩阵的函

23、数vzeros(m,n)mn的零矩阵,全部元素都为0vones(m,n)全部元素都为1的mn的矩阵vrand(m,n)随机矩阵veye(m,n)单位矩阵vmagic(n)n维magic方阵v空阵 matlab允许输入空阵,当一项操作无结果时,返回空阵。还有伴随矩阵、稀疏矩阵、范德蒙等矩阵的创建等等注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。matlab函数名必须小写。2.矩阵标识和子矩阵v子阵的序号向量标识方式a(m,n),m,n大于等于1小于矩阵的维数;va(L1,:)、a(:,L2)、a(L1,L2)v B=magic(5)vB=v 17 24 1 8 15v 23

24、5 7 14 16v 4 6 13 20 22v 10 12 19 21 3v 11 18 25 2 9v B1=B(1:2,1,3,5)vB1=v 17 1 15v 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 223.3.矩阵的运算矩阵的运算3.1.3.1.矩阵加、减(矩阵加、减(矩阵加、减(矩阵加、减(,)运算运算运算运算规则:规则:规则:规则:相加、减的两矩阵必须相加、减的两

25、矩阵必须相加、减的两矩阵必须相加、减的两矩阵必须有相同的行和列两矩阵有相同的行和列两矩阵有相同的行和列两矩阵有相同的行和列两矩阵对应元素相加减。对应元素相加减。对应元素相加减。对应元素相加减。允许参与运算的两矩阵允许参与运算的两矩阵允许参与运算的两矩阵允许参与运算的两矩阵之一是标量。标量与矩之一是标量。标量与矩之一是标量。标量与矩之一是标量。标量与矩阵的所有元素分别进行阵的所有元素分别进行阵的所有元素分别进行阵的所有元素分别进行加减操作。加减操作。加减操作。加减操作。MATLAB表达式加a+b减a-b乘a*b除a/b 或 ab幂ab3.2.矩阵乘()运算规则:vA矩阵的列数必须等于B矩阵的行数

26、例a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*bc=14 32 23v标量可与任何矩阵相乘 例 d=-1;0;2;f=pi*d f=-3.1416 0 6.2832在matlab中矩阵除的运算有两种矩阵除运算MATLAB用“/”代表右除(常用除法)和“”左除运算。这两种运算的差别如下:例如:2/5 表示0.4,25 表示2.5;对于矩阵,A/B 表示AB-1,即A*inv(B);BA 表示B-1A,即inv(B)*A。矩阵除法可以看作矩阵乘法的逆运算3.3.矩阵除运算例例左除解方程组左除解方程组ax=b的解的解 :x=abv a=rand(5);%产生(5*5)的均匀分布随

27、机矩阵v b=ones(5,1);%产生全为1的5元列向量v x1=inv(a)*bvx1=v -0.1734v 0.5573v 0.0309v 0.7208v 0.8147v x2=abvx2=v -0.1734v 0.5573v 0.0309v 0.7208v 0.8147 a p a 自乘p次幂 方阵方阵1的的整数整数3.4 矩阵乘方 an,ap,pa对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量ap使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,ap则无意义。a=1,2,3;4,5,6;7,8,9;a2 ans=30 36 42 66 81 96 102 126

28、 150当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。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.2717ivinv 矩阵求逆vsize 矩阵的大小(行列数)vdet 行列式的值veig 矩阵的特征值vrank 矩阵的秩 v 矩阵转置vsqrt 矩阵开方vsvd矩阵的奇异值分解3.5.矩阵的其它运算 3.6.矩阵的一些特殊操作v矩阵的变维 a=1:12;b

29、=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)v矩阵的变向 rot90:旋转;fliplr:上翻;flipud:下翻v矩阵的抽取 diag:抽取主对角线;tril:抽取主下三角;triu:抽取主上三角4.数组的建立和运算v数组即只有一列的矩阵,可看作行向量;所有矩阵创建和修改的方法适用于数组v1)Matlab提供了创建数组的命令(:或linspace):v例:v a=0:0.2:1va=v 0 0.2000 0.4000 0.6000 0.8000 1.0000v x=linspace(0,1,10)%利用linspace产生间隔起始值0,终止值1,元素数为10的数

30、组vx=v 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 v 0.7778 0.8889 1.000数组的运算元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同1.数组加减(.+,.-)a.+b a.-b对应元素相加减(与矩阵加对应元素相加减(与矩阵加减等效)减等效)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 a=1 2 3;4 5 6;7 8 9;

31、b=2 4 6;1 3 5;7 9 10;a*bans=25 37 46 55 85 109 85 133 172 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对应元素间的商.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常用矩阵向量运

32、算数据统计处理数据统计处理求最大值和最小值求最大值和最小值求和与求积求和与求积求平均值和标准方差、中值与相关系数求平均值和标准方差、中值与相关系数排序排序(一一)求最大值和最小值求最大值和最小值(1)y=max(X):返回向量:返回向量X的最大值存入的最大值存入y,如果,如果X中包含复数中包含复数元素,则按模取最大值。元素,则按模取最大值。MATLAB提供的求数据序列的最大值和最小提供的求数据序列的最大值和最小值的函数分别为值的函数分别为max和和min1求求向量向量的最大值和最小值的最大值和最小值 求一个向量求一个向量X的最大值的函数有两种调用格式,分别是:的最大值的函数有两种调用格式,分别

33、是:(2)y,I=max(X):返回向量:返回向量X的最大值存入的最大值存入y,最大值的序号,最大值的序号存入存入I,如果,如果X中包含复数元素,则按模取最大值。中包含复数元素,则按模取最大值。求向量求向量X的最小值的函数是的最小值的函数是min(X),用法和,用法和max(X)完全相同。完全相同。例例 求向量求向量x x的最大值。的最大值。命令如下:命令如下:v x=-43,72,9,16,23,47;x=-43,72,9,16,23,47;v y=y=max(xmax(x)%)%求向量求向量x x中的最大值中的最大值v y,ly,l=max(xmax(x)%)%求向量求向量x x中的最大值

34、及其该元素的位置中的最大值及其该元素的位置vy=y=v 72 72vy=y=v 72 72vl=l=v 2 22求求矩阵矩阵的最大值和最小值的最大值和最小值(2)Y,U=(2)Y,U=max(Amax(A):返回行向量:返回行向量Y Y和和U U,Y Y向量记录向量记录A A的每列的最的每列的最大值,大值,U U向量记录每列最大值的行号。向量记录每列最大值的行号。求矩阵求矩阵A A的最大值的函数有的最大值的函数有3 3种调用格式,分别是:种调用格式,分别是:(3)(3)max(A,dimmax(A,dim):dimdim取取1 1或或2 2。dimdim取取1 1时,该函数和时,该函数和max

35、(Amax(A)完全相同;完全相同;dimdim取取2 2时,该函数返回一个列向量,其第时,该函数返回一个列向量,其第i i个元素是个元素是A A矩阵的第矩阵的第i i行上的最大值。行上的最大值。求最小值的函数是求最小值的函数是minmin,其用法和,其用法和maxmax完全相同。完全相同。(1)y=(1)y=max(Amax(A):返回一个行向量,向量的第:返回一个行向量,向量的第i i个元素是矩阵个元素是矩阵A A的的第第i i列上的最大值。列上的最大值。v a=9,6,7;20,9,2;15,13,0;3,4,6va=v 9 6 7v 20 9 2v 15 13 0v 3 4 6v y=

36、max(a)%每列的最大值每列的最大值vy=v 20 13 7v y,u=max(a)%每列的最大值及下标每列的最大值及下标vy=v 20 13 7vu=v 2 3 1v max(a,2)%dim=2,每行的最大值,每行的最大值vans=v 9v 20v 15v 6例例 分别求分别求34矩阵中各列和各行元素中的最大值矩阵中各列和各行元素中的最大值3两个两个向量向量或或矩阵矩阵对应元素的对应元素的比较比较函数函数maxmax和和minmin还能对两个同型的向量或矩阵进行比较,调用还能对两个同型的向量或矩阵进行比较,调用格式为:格式为:(1)U=(1)U=max(A,Bmax(A,B):A,BA,

37、B是两个同型的向量或矩阵,结果是两个同型的向量或矩阵,结果U U是与是与A,BA,B同型的向量或矩阵,同型的向量或矩阵,U U的每个元素等于的每个元素等于A,BA,B对应元素的较对应元素的较大者。大者。(2)U=(2)U=max(A,nmax(A,n):n n是一个标量,结果是一个标量,结果U U是与是与A A同型的向量同型的向量或矩阵,或矩阵,U U的每个元素等于的每个元素等于A A对应元素和对应元素和n n中的较大者。中的较大者。minmin函数的用法和函数的用法和maxmax完全相同。完全相同。a=9,6,7;20,9,2va=v 9 6 7v 20 9 2v b=15,13,0;3,4

38、,6vb=v 15 13 0v 3 4 6v u=max(a,b)%找出同一位置的最大值找出同一位置的最大值vu=v 15 13 7v 20 9 6例例 求两个求两个23矩阵矩阵x,y所有同一位置上的较大元素构成的新矩所有同一位置上的较大元素构成的新矩阵阵p。(二)求和与求积(二)求和与求积sum(X):返回:返回向量向量X各元素的各元素的和和。prod(X):返回:返回向量向量X各元素的各元素的乘积乘积。sum(A):返回一个:返回一个行行向量,其第向量,其第i个元素是个元素是A的第的第i列列的元素的元素和和。prod(A):返回一个:返回一个行行向量,其第向量,其第i个元素是个元素是A的第

39、的第i列列的元素的元素乘积乘积。sum(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于sum(A);当;当dim为为2时,时,返回一个返回一个列列向量,其第向量,其第i个元素是个元素是A的第的第i行行的各元素之的各元素之和和。prod(A,dim):当:当dim为为1时,该函数等同于时,该函数等同于prod(A);当;当dim为为2时,时,返回一个返回一个列列向量,其第向量,其第i个元素是个元素是A的第的第i行行的各元素的各元素乘积乘积。数据序列求和与求积的函数是数据序列求和与求积的函数是sum和和prod,其使用方法类,其使用方法类似。设似。设X是一个向量,是一个向量,A是

40、一个矩阵,函数的调用格式为:是一个矩阵,函数的调用格式为:在在MATLAB中,使用中,使用cumsum和和cumprod函数能方便地求得向量函数能方便地求得向量和矩阵元素的累加和与累乘积向量,调用格式同上和矩阵元素的累加和与累乘积向量,调用格式同上例例求矩阵求矩阵A的每行元素的乘积和全部元的每行元素的乘积和全部元素的乘积。素的乘积。v a=1,2,3;4,5,6va=v 1 2 3v 4 5 6v a_s=sum(a)%每列之和每列之和va_s=v 5 7 9v a_s2=sum(a,2)%dim=2,每行之和,每行之和va_s2=v 6v 15v a_p=prod(a)%每列之积每列之积va

41、_p=v 4 10 18v a_p2=prod(a,2)%每行之积每行之积va_p2=v 6v 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求数据序列平均值的函数是求数据序列平均值的函数是meanmean求数据序列标准方差的函数是求数据序列标准方差的函数是stdstd求数据序列中值的函数是求数据序列中值的函数是medianmediancorrcoefcorrcoef函数可求出数据的相关系数矩阵函数可求出数据

42、的相关系数矩阵(三)求平均值和标准方差、中值与相关系数(三)求平均值和标准方差、中值与相关系数例例生成满足正态分布的生成满足正态分布的100005随机矩阵,然后求各随机矩阵,然后求各列元素的均值和标准方差,再求这列元素的均值和标准方差,再求这5列随机数据的相关列随机数据的相关系数矩阵系数矩阵命令如下:命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)(四)排序(四)排序MATLAB中对向量中对向量X是排序函数是是排序函数是sort(X),函数返回,函数返回一个对一个对X中的元素按升序排列的新向量。中的元素按升序排列的新向量。sort函数也可

43、以对矩阵函数也可以对矩阵A的各列或各行重新排序,其调的各列或各行重新排序,其调用格式为:用格式为:Y,I=sort(A,dim)其中其中dim指明对指明对A的列还是行进行排序。若的列还是行进行排序。若dim=1,则按列排;若则按列排;若dim=2,则按行排。,则按行排。Y是排序后的矩阵,是排序后的矩阵,而而I记录记录Y中的元素在中的元素在A中位置。中位置。v a=10,2,3;41,25,6;3,1,5va=v 10 2 3v 41 25 6v 3 1 5v a_s=sort(a)%按列进行从小到大排序va_s=v 3 1 3v 10 2 5v 41 25 6v a_s,I=sort(a)%I

44、给出排序后各元素在原始矩阵中所在的行vI=v 3 3 1v 1 1 3v 2 2 2v a_s=sort(a,2)%按行进行排序va_s=v 2 3 10v 6 25 41v 1 3 5例例 对二维矩阵做各种排序对二维矩阵做各种排序(三)Matlab的高级数值计算v关系运算关系运算v逻辑运算逻辑运算v多项式计算多项式计算v曲线拟合曲线拟合v数据插值数据插值v离散傅立叶变换离散傅立叶变换v方程组求解方程组求解v如何使用稀疏矩阵如何使用稀疏矩阵1.关系运算v运算法则v两个变量是标量a和b时,则如果关系成立,结果为1,否则为0;v两个维数相同的数组A和B时,比较相同位置的元素,按标量运算规则逐个进行

45、;v维数相同的数组A和标量b时,把标量b与数组中的每一个元素逐个比较;v优先级:高到低为算术运算、关系运算、逻辑运算关系运算符 关系符号意义=小于小于或等于大于大于或等于等于不等于例:va=2 3 4 5 6 7 8;vb=6 5 4 3 2 1 0;v t=a4vt=v 0 0 0 1 1 1 1v t1=(a=b)vt1=v 0 0 1 0 0 0 0v说明:=和=的不同:=比较两个变量,相等时返回1,否则,返回0;=示将结果赋给一个变量2.逻辑运算v逻辑运算符逻辑运算符v&与与 (and)v|或或 (or)v 非非 (not)例:va=2 3 4 5 6 7 8;v t=(a4)%不大于4的元素vt=v 1 1 1 0 0 0 0v t=(a2)&(a6)%找出2a 2)vans=v 3 8 9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁