的基础知识2.ppt

上传人:sccc 文档编号:5890729 上传时间:2023-08-30 格式:PPT 页数:41 大小:148.01KB
返回 下载 相关 举报
的基础知识2.ppt_第1页
第1页 / 共41页
的基础知识2.ppt_第2页
第2页 / 共41页
的基础知识2.ppt_第3页
第3页 / 共41页
的基础知识2.ppt_第4页
第4页 / 共41页
的基础知识2.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《的基础知识2.ppt》由会员分享,可在线阅读,更多相关《的基础知识2.ppt(41页珍藏版)》请在三一办公上搜索。

1、1,控制系统仿真-基于MATLAB语言,主讲教师:张磊中国海洋大学 工程学院,2023/8/30,2,本节内容本节介绍matlab语言的基础知识,主要包括:矩阵及其操作(创建矩阵、矩阵的属性和操作)矩阵及数组的简单运算(加减乘点运算)多维矩阵及其操作结构体和元胞数组的用法字符串的创建,3,22 MATLAB的基础知识,1.矩阵及其操作 1)矩阵的创建,MATLAB中使用方括号、逗号和分号创建,A=1 2 3 4A=1 2 3 4B=1;2;3;4B=1234,Var=Start:Step:StopVar=linspace(Start,Stop,n)产生一个有n个元素的一维向量,第一个元素是St

2、art最后一个是Stop,n个元素为等差数列A=1:4A=1 2 3 4B=1:2:4B=1 3C=linspace(1,4,5)C=1.0000 1.7500 2.5000 3.2500 4.0000,4,例:创建一个二维矩阵,命令:A=1 2 3;2 5 6;1 4 5B=1:5;linspace(3,10,5);3 5 2 6 4C=1:3 linspace(2,3,3)3 5 6结果:A=1 2 3 2 5 6 1 4 5B=1.0000 2.0000 3.0000 4.0000 5.0000 3.0000 4.7500 6.5000 8.2500 10.0000 3.0000 5.0

3、000 2.0000 6.0000 4.0000C=1.0000 2.0000 3.0000 2.0000 2.5000 5.0000 3.0000 3.0000 6.0000,5,22 MATLAB的基础知识,1.矩阵及其操作 2)矩阵的属性,矩阵大小是了解矩阵最常用的属性,是指在每一个方向上具有的元素个数。1.Var=size(A)将矩阵A的行列尺寸以一个行向量的形式返回给Var,Var=m n,或a,b=size(A)2.Length(A)可以返回一位数组的元素个数A=1 2 3 4 5length(A)ans=5C=1:5;2:6C=1 2 3 4 5 2 3 4 5 6 size(C

4、);length(C)ans=2 5 ans=5,6,1.矩阵及其操作 3)创建特殊矩阵,0-1矩阵:矩阵元素均由0或1组成。1.zeros(m,n)创建一个m行n列的全0矩阵2.ones(m,n)创建一个m行n列的全1矩阵3.eye(m,n)创建单位矩阵,对角线元素为1zeros(size(A),ones(size(A),eye(size(A),创建和A具有相同大小的特殊矩阵 A=zeros(2,2)A=0 0 0 0 B=ones(2,4)B=1 1 1 1 1 1 1 1 C=eye(size(A)C=1 0 0 1,7,1.矩阵及其操作 4)矩阵操作,矩阵的保存和装载:在许多实际应用中

5、矩阵多是较庞大的,操作步骤多,经常不能在短期内完成。需要对矩阵进行保存和装载。Save 将工作区的变量保存为.mat的二进制文件,其中filename为文件名,var是变量名2.Load 将文件filename中保存的内容装载到工作区中,变量名分别为var1和var2 save exp1 A B C,8,1.矩阵及其操作 4)矩阵操作 简单运算,矩阵的常规运算:矩阵间的加、减、乘、乘方运算。加减法需要参与运算的矩阵必须具有相同的尺寸。乘法要求第一数组的列等于第二数组的行。A+BB-AA*C矩阵的点运算:对两个尺寸相同的矩阵A和B对应元素进行乘、除或乘方运算。A.*BA./BA.n,9,2.1

6、矩阵加、减(,)运算规则:相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,2、矩阵运算,a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a+bans=3 6 9 5 8 11 14 17 19,10,2.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,11,a./b=b.a

7、a.b=b./aa./b=b.a 都是b的元素被a的对应元素除a/ba.b=b./a 都是a的元素被b的对应元素除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对应元素间的商,12,矩阵乘方(.)元素对元素的幂例: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,13,2.3矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。a=1 2 3;4 5 6;7 8 0;b=1;

8、2;3;c=a*bc=14 32 23,14,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 d=-1;0;2;f=pi*df=-3.1416 0 6.2832,15,inv(A)矩阵求逆det(A)行列式的值eig(A)矩阵的特征值diag(A)对角矩阵 A 矩阵转置sqrt(A)矩阵开方,2.5 矩阵的其它运算,16,关系运算,关系运算的对象a,b可以都是矩阵,它们的大小相同,关系操作是对矩阵各对应元素的比较。返回值1表示真,0则表示假。,17,通过实例了解关系运算,a=1 6 12

9、;3 32 7b=2 3 4;6 7 8c=gt(a,b)c=0 1 1 0 1 0,18,2.6 矩阵的一些特殊操作,矩阵的变维 a=1:12;b=reshape(a,3,4)%将矩阵a转换为34矩阵并赋给变量bb=1 4 7 10 2 5 8 11 3 6 9 12 c=zeros(3,4);c(:)=a(:)%给矩阵c赋值c=1 4 7 10 2 5 8 11 3 6 9 12,19,2.6 矩阵的一些特殊操作,矩阵的变向 rot90:旋转;fliplr:上翻;flipud:下翻b=1 4 7 10 2 5 8 11 3 6 9 12,flipud(b)ans=3 6 9 12 2 5

10、8 11 1 4 7 10,rot90(b)ans=10 11 12 7 8 9 4 5 6 1 2 3,20,2.6 矩阵的一些特殊操作,矩阵的抽取 diag:抽取主对角线;tril:抽取主下三角;triu:抽取主上三角矩阵的扩展,diag(b)ans=1 5 9,tril(b)ans=1 0 0 0 2 5 0 0 3 6 9 0,21,矩阵的修改,直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改 可以用A(,)=来修改。,22,例如a=1 2 0;3 0 5;7 8 9a=1 2 0 3 0 5 7 8 9a(3,3)=0a=1 2 0 3 0 5 7

11、8 0,可以用函数subs修改,还可用find函数修改。,23,课堂练习,1.使用几种方法创建2个2维矩阵a,b;2.计算a+b,a-b,ab,ab,a/b 3.针对题目1.创建的a和b矩阵完成以下操作:1)练习对矩阵a的rot90:旋转,fliplr:上翻,flipud:下翻2)练习对数组b的diag:抽取主对角线,tril:抽取主下三角,triu:抽取主上三角3)保存上面2)的各项结果,24,22 MATLAB的基础知识,3.多维矩阵及其操作,多维矩阵的创建3.1通过指定索引把二维矩阵扩展为多维矩阵3.2使用内联函数创建3.3用CAT函数进行链接创建,可以将预先创建好的矩阵按照某一维度链接

12、起来。,25,22 MATLAB的基础知识,3.1 通过指定索引把二维矩阵扩展为多维矩阵,A=5 7 8;0 1 9;4 3 6;A(:,:,2)=1 0 4;3 5 6;9 8 7A(:,:,1)=5 7 8 0 1 9 4 3 6A(:,:,2)=1 0 4 3 5 6 9 8 7,26,3.2 使用内联函数创建,ones(d1,d2,d3.)生成d1*d2*d3的多维全1数组ones(size(A)生成与数组A同样尺寸的全1数组zeros(d1,d2,d3.)生成d1*d2*d3的多维全0数组zeros(size(A)生成与数组A同样尺寸的全0数组rand(d1,d2,d3.)生成d1*

13、d2*d3的多维数组,数组元素服从【0,1】均匀分布rand(size(A)生成与数组A同样尺寸的多维数组,数组元素服从【0,1】均匀分布,27,3.2 使用内联函数创建,例:随机生成3*3的三维数组 A=rand(3,3,2)A(:,:,1)=0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214A(:,:,2)=0.4447 0.9218 0.4057 0.6154 0.7382 0.9355 0.7919 0.1763 0.9169,28,3.3 用CAT函数进行链接创建,例:A=cat(3,9 2;6 5,7 1;8

14、 4);%在页面方向连接上两个新建立的二维数组创建三维数组A(:,:,1)=9 2 6 5A(:,:,2)=7 1 8 4,A(:,:,1),A(:,:,2),9 26 5,29,22 MATLAB的基础知识,4.结构体和元胞数组,结构体和元胞数组是两种较复杂的数据类型,都可以存储多组不同类型的数据。结构体和C语言的类似,可以通过字段存储多个不同类型的数据。,PAT,Name-zhang,Billing-127.00,test-12 75 23 180 178 177.5 220 210 206,30,4.1结构体的创建,4.1.1直接使用赋值语句创建,pat.name=zhang;pat.b

15、illing=127.00;pat.test=79 75 73;180 178 177.5;220 210 205;patwhos,pat=name:zhang billing:127 test:3x3 double Name Size Bytes Class pat 1x1 468 struct arrayGrand total is 21 elements using 468 bytes,31,4.1.2 利用创建函数struct语法形式为:Array=struct(field1,val1,field2,val2,),创建结构体对象,并将第n字段fieldn赋值为valn,weather(

16、2)=struct(total,sunny,temp,18,rainfall,0.0)weather=1x2 struct array with fields:total temp rainfallweather(1)%结构体数组的第一个元素没有赋值,因此所有字段赋值为空数组ans=total:temp:rainfall:weather(2)ans=total:sunny temp:18 rainfall:0,32,获取结构体元素、数据,strArray,Name=personA,Age=13,mat=1 2,strArray(1),strArray(2),strArray(3),sex=fe

17、male,Name=personB,Age=20,mat=3 4 5 6,sex=male,Name=personC,Age=25,mat=,sex=male,33,获取结构体元素、数据,strArray=struct(name,personA,personB,personC.,age,13,20,25,sex,female,male,male,.mat,1 2,3 4;5 6,),%通过冒号和括号裁减产生结构体数组的子数组 newArray=strArray(1:2)newArray=1x2 struct array with fields:name age sex mat,%通过下标索引访

18、问结构体数组中的第一个结构体元素 strArray(1)ans=name:personA age:13 sex:female mat:1 2,%访问第二个结构体元素的name字段值 strArray(2).nameans=personB,34,4.2 元胞数组与结构体类似元胞数组也可以存储不同类型、不同尺寸的数据。是对常规数组的扩展,每一个元素称为元胞,都可以存储任意类型、尺寸的数据。,Cell 1,11 2 33 4 5,Cell 1,2zhang07/08/20Class A,Cell 1,325+3i8-16i,Cell 2,11.43 3.55 1.333.34 8.55,Cell 2

19、,2,Cell 2,3,Testyyyy,4 35 67 8,35,元胞数组的创建arrayName=cell(m,n)创建包含m行n列个元胞的元胞数组 A=cell(2,2)A=A(1,1)=1 4 3;0 5 8;7 2 9;A(1,2)=zhang;A(2,1)=3+7i;A(2,2)=-pi:pi/10:pi;AA=3x3 double zhang 3.0000+7.0000i 1x21 double,36,元胞数组的显示celldisp(A)用来逐个显示元胞的具体数据内容cellplot(A)绘制图形显示元胞数组的结构,C(1,1)=1 2;3 4;C(1,2)=string;C(2

20、,1)=struct(name,liuliu,age,20,sex,male);C(2,2)=struct2cell(struct(fieldA,a,fieldB,b,fieldC,c);CC=2x2 double string 1x1 struct 3x1 cell,37,celldisp(C)C1,1=1 2 3 4 C2,1=name:liuliu age:20 sex:maleC1,2=stringC2,21=aC2,22=bC2,23=c,cellplot(C),38,22 MATLAB的基础知识,5.字符串,通过例题来理解字符串的属性、标识和简单操作,a=This is an ex

21、ample.a=This is an example.size(a)ans=1 19a14=a(1:4)ra=a(end:-1:1)a14=Thisra=.elpmaxe na si sihT,b=Example 3.1.2-1b=Example 3.1.2-1ab=a(1:7),b,.ab=This is Example 3.1.2-1.,39,S1=char(这字符串数组,由2 行组成)S1=这字符串数组由2行组成S2=str2mat(这,字符,串数组,由4 行组成)S2=这字符串数组由4 行组成,22 MATLAB的基础知识,5.字符串,利用串操作函数创建多行串数组,str2mat:字符串结合并转换为矩阵,char:创建多行字符串,40,课堂练习,1.创建一个3*3的元胞数组,赋值并显示2.利用创建函数struct,建立一个结构体数组,并用不同方法访问数据元素3.使用内联函数创建2个2维数组4.创建2个字符串,41,小 结本节介绍了matlab语言的基础知识,通过学习应该掌握:如何创建矩阵、修改矩阵矩阵及数组运算结构体和元胞数组的用法字符串的创建,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号