资源描述:
《MATLAB程序设计语言6》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB程序设计语言任课教师:李靖博士(讲师)Email:jli@xidian.edu.cn研究方向:无线通信Chapter6数据阵列类型与结构多维阵列结构阵列单元阵列复杂阵列结构多维阵列、结构阵列和单元阵列函数26.1多维阵列多维阵列建立多维阵列多维阵列信息多维阵列的使用多维阵列计算多维阵列的数据组织36.1.1-2多维阵列及其建立多维阵列是二维矩阵的推广多维阵列使用3个以上的下标来访问多维阵列的建立:1.利用下标建立多维阵列;2.利用matlab函数产生多维阵列;3.利用cat函数建立多维阵列;4.用户自己编写M文件产生多维阵列。4利用下标建立多维阵列例6.1有两
2、个二维矩阵A和BA=B=123111213456141516可以很容易地构造一个三维矩阵C:C(:,:,1)=A;C(:,:,2)=B;给出:C(:,:,1)=C(:,:,2)=1231112134561415165利用matlab函数产生多维阵列利用rand,randn,ones,zeros产生多维阵列,且在函数调用时指定每一维的尺寸。例6.2输入R=randn(3,4,2),给出:R(:,:,1)=0.4694-0.6275-0.20371.5929-0.90360.5354-2.05431.01840.03590.55290.1326-1.5804R(:,:,2)=
3、-0.0787-1.23440.05580.3710-0.68170.2888-0.36790.7283-1.0246-0.4293-0.46502.1122另外,A=ones(4,3,2);B=repmat(3,[3,2,2]);6利用cat函数建立多维阵列可将任何两个维数适当的阵列按指定维数进行连接,从而产生更高维阵列例6.3A=B=12563478C=cat(1,A,B)C=12345678C=cat(2,A,B)C=12563478C=cat(3,A,B)C(:,:,1)=1234C(:,:,2)=567876.1.3多维阵列信息ndims获得多维阵列维数size
4、得到阵列各维的尺寸whos得到阵列的存储和格式86.1.4多维阵列的使用(P269)下标访问技术阵列重新排列阵列的序列变换96.1.5多维阵列计算面向向量的函数:sum,mean,cross面向元素的函数:三角函数、指数函数等(可按对二维阵列的操作方式对多维阵列处理)算术、逻辑和关系运算符面向矩阵的函数:线性代数函数和矩阵函数106.1.6多维阵列的数据组织多维阵列可表示两类数据:表示成二维数据的平面或页,可将页当作矩阵处理;表示成多变量或多维数据。(例P272)116.2结构阵列结构阵列由多个域构成,每个域可以存放各种类型的数据,例如,第一个域为用字符串表示的学生名字,
5、第二个域为用标量表示的学生学号,第三个域为数值矩阵表示的学生成绩。126.2.1建立结构阵列利用赋值语句,对结构阵列的各个域进行赋值。例:student.name=‘ZhangSan’;student.number=001;student.score=[817992859471];136.2.1建立结构阵列利用struct函数建立结构阵列例:student1=struct(’name’,’ZhangSan’,’number’,’001’,’score’,[817992859471])例:ex1.m146.2.2结构阵列数据的使用在结构阵列中,利用结构名后的括号指示第n个结
6、构元素,利用句点引出域名指示相应的域。str=student(1).name;可采用循环得到多个域的值。getfield,setfieldgetfield(student,{2},'name')student=setfield(student,{2},'number',003)156.2.3结构阵列应用于函数和操作符例:mean(student(1).score)ans=83.6667166.2.4结构阵列的数据组织(p277)平面组织:结构的每个域是整个图像平面优点:易扩展到多个平面或图像缺点:访问平面的子集比较麻烦元素对元素组织:优点:方便访问数据的子集缺点:要采用循
7、环建立结构,且访问平面数据麻烦176.2.5结构嵌套结构嵌套:在结构阵列中,其域值可以是另一个已经定义过的结构例:n={'cour1','cour2','cour3'};r=[886579];student=struct('name','ZhangSan','number','001','course',struct('name',n,'score',r))执行后:student=name:'ZhangSan'number:'001'course:[1x3struct]186.3单元阵列Matlab允许将不同类型的阵列组合成一