您好,欢迎访问三七文档
数据阵列类型与结构1多维阵列2结构阵列3单元阵列主要内容1多维阵列从MATLAB5.0版本开始,支持多维阵列。多维阵列是二维矩阵的推广,它可用来表示更复杂的数据。一、多维阵列的建立直接利用下标建立;利用MATLAB函数建立;利用cat函数建立;用户自己编写M文件产生。1多维阵列例如:a=[543;021;82-7];a(:,:,2)=[010;213;99-8]a(:,:,1)=54302182-7a(:,:,2)=01021399-8whosNameSizeBytesClassa3x3x2144doublearrayGrandtotalis18elementsusing144bytes1多维阵列(续)如果再输入a(:,:,3)=6;a(:,:,3)ans=666666666R=randn(5,4,3);Z=zeros(100,5,2);Y=ones(155,7,8);X=sin(R);1多维阵列(续)whosNameSizeBytesClassR5x4x3480doublearrayX5x4x3480doublearrayY155x7x869440doublearrayZ100x5x28000doublearraya3x3x3216doublearrayGrandtotalis9827elementsusing78616bytesa=[28;05];b=[18;24];c=cat(3,a,b);d=cat(4,a,b);size(d)ans=2212whosNameSizeBytesClassa2x232doublearrayb2x232doublearrayc2x2x264doublearrayd4-D64doublearrayGrandtotalis24elementsusing192bytes2结构阵列结构阵列由多个域构成,每个域可存放各种类型的数据,如数值、字符串。一、建立结构阵列直接使用赋值语句;利用struct函数。例如:p.name='JohnDoe';p.name='WangJun';p.billing=127.00;p.test=[797573;180178177.5;220210205];pp=name:'WangJun'billing:127test:[3x3double]size(p)ans=112结构阵列(续)再输入第二个人的信息:p(2).name='LiMing';p(2).billing=28.5;p(2).test=[687068;118117119;172170169];pp=1x2structarraywithfields:namebillingtest这样可以建立结构阵列。N=fieldnames(p)可得到结构p包含的域名。2结构阵列(续)我们还可以利用struct函数直接建立结构。例如对以上示例,可输入n={'WangJun','LiMing'};b={12728.5};t1=[797573;180178177.5;220210205];t2=[687068;118117119;172170169];q=struct('name',n,'billing',b,'test',{t1,t2});2结构阵列(续)qq=1x2structarraywithfields:namebillingtest这时得到的结构q与前例的结构p一样。2结构阵列(续)二、结构数据的使用n1=p(1).namen1=WangJunb1=p(1).billingb1=127disp(['Thecostof',n1,'inhospitalis',num2str(b1)])ThecostofWangJuninhospitalis1272结构阵列(续)disp(['Thecostof',q(2).name,'inhospitalis',num2str(q(2).billing)])ThecostofLiMinginhospitalis28.5second=p(2)second=name:'LiMing'billing:28.5000test:[3x3double]2结构阵列(续)三、结构阵列应用于函数和操作符mean(p(2).test)ans=119.3333119.0000118.6667total=sum([p.billing])total=155.50003单元阵列单元阵列是一种更加复杂的结构,它可以包含多维阵列、结构阵列、字符串等。例如A{1,1}={[143;058;729]};A{1,2}={'AnneSmith'};A{2,1}={3+7i};A{2,2}={-pi:pi/10:pi};AA=[3x3double]'AnneSmith'[3.0000+7.0000i][1x21double]3单元阵列用图形表示:cellplot(A)3单元阵列(续)访问单元阵列元素时,可直接采用单元下标(采花括号):B=A{1,1}B=143058729C=A{1,2}C=AnneSmithwhosNameSizeBytesClassA2x2644cellarrayB3x372doublearrayC1x1020chararrayGrandtotalis64elementsusing736bytes3单元阵列(续)A{3,1}='Addoneline';A{3,2}=[21;10,-20];AA=[3x3double]'AnneSmith'[3.0000+7.0000i][1x21double]'Addoneline'[2x2double]小结主要介绍的内容是MATLABV6.x所增强的功能,利用这些阵列结构可完成各种复杂的应用。主要内容包括:1多维阵列2结构阵列3单元阵列
本文标题:数据阵列类型与结构
链接地址:https://www.777doc.com/doc-3181186 .html