MATLAB程序设计语言6电子教案

上传人:yulij****0329 文档编号:141070707 上传时间:2020-08-04 格式:PPT 页数:86 大小:456KB
返回 下载 相关 举报
MATLAB程序设计语言6电子教案_第1页
第1页 / 共86页
MATLAB程序设计语言6电子教案_第2页
第2页 / 共86页
MATLAB程序设计语言6电子教案_第3页
第3页 / 共86页
MATLAB程序设计语言6电子教案_第4页
第4页 / 共86页
MATLAB程序设计语言6电子教案_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《MATLAB程序设计语言6电子教案》由会员分享,可在线阅读,更多相关《MATLAB程序设计语言6电子教案(86页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 程序设计语言,任课教师:李靖 博士(讲师),Email:,研究方向:无线通信,2,Chapter6 数据阵列类型与结构,多维阵列 结构阵列 单元阵列 复杂阵列结构 多维阵列、结构阵列和单元阵列函数,3,6.1 多维阵列,多维阵列 建立多维阵列 多维阵列信息 多维阵列的使用 多维阵列计算 多维阵列的数据组织,5,利用下标建立多维阵列,例6.1 有两个二维矩阵A和B A = B = 1 2 3 11 12 13 4 5 6 14 15 16 可以很容易地构造一个三维矩阵C : C (:,:,1 ) = A; C (:,:,2 ) = B; 给出: C (:,:,1 )= C (:,:

2、,2 ) = 1 2 3 11 12 13 4 5 6 14 15 16,6,利用matlab函数产生多维阵列,利用rand, randn, ones, zeros产生多维阵列,且在函数调用时指定每一维的尺寸。 例6.2 输入R = randn(3, 4, 2), 给出: R(:,:,1) = 0.4694 -0.6275 -0.2037 1.5929 -0.9036 0.5354 -2.0543 1.0184 0.0359 0.5529 0.1326 -1.5804 R(:,:,2) = -0.0787 -1.2344 0.0558 0.3710 -0.6817 0.2888 -0.3679

3、 0.7283 -1.0246 -0.4293 -0.4650 2.1122 另外,A = ones(4,3,2); B = repmat(3, 3,2,2);,7,利用cat函数建立多维阵列,可将任何两个维数适当的阵列按指定维数进行连接,从而产生更高维阵列 例6.3 A = B = 1 2 5 6 3 4 7 8,C = cat(1, A, B) C = 1 2 3 4 5 6 7 8,C = cat(2, A, B) C = 1 2 5 6 3 4 7 8,C = cat(3, A, B) C(:,:,1) = 1 2 3 4 C(:,:,2) = 5 6 7 8,8,6.1.3 多维阵列

4、信息,ndims 获得多维阵列维数 size 得到阵列各维的尺寸 whos 得到阵列的存储和格式,9,6.1.4 多维阵列的使用(P269),下标访问技术 阵列重新排列 阵列的序列变换,10,6.1.5 多维阵列计算,面向向量的函数: sum, mean, cross 面向元素的函数: 三角函数、指数函数等 (可按对二维阵列的操作方式对多维阵列处理) 算术、逻辑和关系运算符 面向矩阵的函数: 线性代数函数和矩阵函数,11,6.1.6 多维阵列的数据组织,多维阵列可表示两类数据: 表示成二维数据的平面或页,可将页当作矩阵处理; 表示成多变量或多维数据。(例P272),12,6.2 结构阵列,结构

5、阵列由多个域构成,每个域可以存放各种类型的数据,例如,第一个域为用字符串表示的学生名字,第二个域为用标量表示的学生学号,第三个域为数值矩阵表示的学生成绩。,13,6.2.1 建立结构阵列,利用赋值语句,对结构阵列的各个域进行赋值。 例:student.name = Zhang San; student.number = 001; student.score = 81 79 92 85 94 71;,14,6.2.1 建立结构阵列,利用struct函数建立结构阵列 例: student1 = struct (name, Zhang San, number, 001, score, 81 79 9

6、2 85 94 71) 例:ex1.m,15,6.2.2 结构阵列数据的使用,在结构阵列中,利用结构名后的括号指示第n个结构元素,利用句点引出域名指示相应的域。 str = student(1).name; 可采用循环得到多个域的值。 getfield, setfield getfield(student,2,name) student=setfield(student,2, number,003),16,6.2.3 结构阵列应用于函数和操作符,例:mean (student(1).score) ans = 83.6667,17,6.2.4 结构阵列的数据组织(p277),平面组织:结构的每个

7、域是整个图像平面 优点:易扩展到多个平面或图像 缺点:访问平面的子集比较麻烦 元素对元素组织: 优点:方便访问数据的子集 缺点:要采用循环建立结构,且访问平面数 据麻烦,18,6.2.5 结构嵌套,结构嵌套:在结构阵列中,其域值可以是另一个已经定义过 的结构 例: n = cour1, cour2, cour3; r = 88 65 79; student = struct (name, Zhang San, number, 001, course, struct(name,n,score,r) 执行后: student = name: Zhang San number: 001 course

8、: 1x3 struct,19,6.3 单元阵列,Matlab允许将不同类型的阵列组合成一个新的阵列,这一阵列称之为单元阵列。单元阵列中的每个单元可以是标量、向量、矩阵、多维阵列、字符阵列、结构阵列等。(P282 图6.6),20,6.3.1 建立单元阵列,建立单元阵列有两种方法: 使用赋值语句 使用cell函数预分配阵列,然后再对单元赋值,21,利用赋值语句建立单元阵列,使用花括号对单元阵列进行赋值,花括号可以用在赋值语句的左边,也可以用在右边。 A1,1 = 1 2 3; 4 5 6; 7 8 9; 或 A(1,1) = 1 2 3; 4 5 6; 7 8 9; A1,2 = Tom; 或

9、 A(1,2) =Tom;,22,利用cell函数定义单元阵列,使用cell函数预分配阵列,然后再对单元赋值 B = cell(2,3) B = B(1,2)=1:4,23,6.3.2 单元阵列数据的使用,利用单元阵列的下标可访问单元阵列元素 A1,1 = 1 2 3; 4 5 6; 7 8 9; A1,2 = Tom; A2,1 = 3+7*i; A2,2 = -pi:pi/10:pi; c = A2,1 c = 3.0000 + 7.0000i c = A1,1(2,3) c = 6,24,6.3.2 单元阵列数据的使用,从已定义单元阵列中取一部分构成新单元阵列 A2,3 = hello

10、A = 3x3 double Tom 3.0000+ 7.0000i 1x21 double hello B=A(1:2,2:3) B = Tom 1x21 double hello 删除元素 A2,3 = % 删除A中的(2,3)的元素 A(:,3) = % 删除A中的第三列元素,25,6.3.3 利用单元阵列取代变量列表,在花括号中采用”:”操作符指示多个单元,则相当于指示多个独立的单元内容 A1:3 %单元阵列A中第1个到第3个元素 ans = 1 2 3 4 5 6 7 8 9 ans = 3.0000 + 7.0000i ans = Tom D1:2=eig(B) %求矩阵的特征向量

11、和特征值,26,6.3.4 单元阵列应用于函数和操作符,利用下标将函数和操作符应用于单元阵列 m = prod(A1,1) m = 28 80 162 l = (abs(A1,1)=3) l = 0 0 1 1 1 1 0 0 0,27,6.3.5 单元阵列的数据组织,单元阵列对组织具有不同尺寸或类型的数据是非常有用的,它比结构更具包容性,可应用于:(p287) 利用一条语句访问多个数据域 利用逗号间隔的变量表访问数据子集 不具备固定的域名 经常从结构中删除域名,28,6.3.6 嵌套单元阵列,一个单元阵列中可以包含另一个单元阵列,甚至可包含单元阵列的阵列,称之为单元阵列的嵌套 建立单元阵列的

12、嵌套: 嵌套的花括号、cell函数、赋值语句。 例6.4 利用嵌套的花括号建立嵌套单元阵列 例6.5 利用cell函数建立嵌套单元阵列,29,6.3.7 单元阵列与数值阵列之间的变换,采用循环程序实现转换,30,6.4 复杂阵列结构,多维单元阵列 多维结构阵列 结构的单元阵列,31,6.4.1 多维单元阵列,借助cat函数连接产生 A1,1 = 1 2 3; 4 5 6; 7 8 9; A1,2 = Tom; A2,1 = 3+7*i; A2,2 = -pi:pi/10:pi; B1,1 = hello; B1,2 = 6; B2,1 = 1:3; B2,2 = 2 4;,32,6.4.1 多

13、维单元阵列,C = cat(3, A, B) C(:,:,1) = 3x3 double Tom 3.0000+ 7.0000i 1x21 double C(:,:,2) = hello 6 1x3 double 1x2 double,33,6.4.2 多维结构阵列,直接赋值或cat函数产生 例: student(1,1,1).name = Tom; student(1,1,1).number = 001; student(1,1,1).score = 81 79 92 85 94 71; student(1,1,2).name = Joe; student(1,1,2).number = 0

14、03; student(1,1,2).score = 64 77 69 84 76 90;,34,6.4.2 多维结构阵列,student = 1x1x2 struct array with fields: name number score avg = sum(student(1,1,2).score)/6 avg = 76.6667,35,6.4.3 结构的单元阵列,利用单元阵列可将具有不同域结构的结构阵列存储在一起。(P293 图6.10),36,6.5 多维阵列、结构阵列和单元阵列函数,多维阵列函数 结构阵列函数 单元阵列函数,37,6.5.1多维阵列函数,cat ndims ndgr

15、id permute ipermute shiftdim squeeze flipdim,38,cat,功能:连接阵列 格式:C = cat(dim,A,B) C = cat(dim,A1,A2,A3,A4.) 说明: 将输入阵列A,B或A1,A2,A3,A4沿着dim维连接成C阵列。 cat(2,A,B) = A,B cat(1,A,B) = A;B,39,ndims,功能:求阵列维数 格式:n = ndims(A) 说明:ndims(x) = length(size(x).,40,ndgrid,功能:为多维函数和内插产生阵列 格式:X1,X2,X3,. = ndgrid(x1,x2,x3,.) X1,X2,. = ndgrid(x) 说明: 可将由向量x1,x2,x3,指定的域变换成阵列X1,X2

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号