matlab单元数组与结构体数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在前面章节已经介绍了几种MATLAB7.0常用的数据类型。本章将介绍两种特殊的数据类型,即单元数组和结构体数组,这两种数据类型的特点是允许用户将不同但是相关的数据类型集成到一个单一的变量。这样,因为相关的数据可以通过一个单元数组或是结构体的数组进行组织和访问,数据的管理就变得相对要容易一些。
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
• >> c(1,1)={'abc'};
• >> c(1,2)={eye(2)};
• >> c(2,1)={[1 2;3 4]};
• >> c(2,2)={[1 2]};
• >> c
• c =
• 'abc' [2x2 double]
• [2x2 double] [1x2 double]
• ======================================================
>> c{1,1}='abc';
>> c{1,2}=eye(2);
>> c{2,1}=[1 2;3 4];
>> c{2,2}=[1 2];
>> c
c =
'abc' [2x2 double]
[2x2 double] [1x2 double]
• >> c={'abc',eye(2);[1 2;3 4],[1 2]}
• c =
• 'abc' [2x2 double]
•[2x2 double] [1x2 double]
•cell(n)生成一个n*n阶的置空单元数组;
•cell(m,n) 或cell([m,n])生成一个m*n阶的置空单元数组;
>> a=cell(2)
a =
[] []
[] []
>> a{1,1}=[1 2;2 2]
a =
[2x2 double] []
[] []
>> a{1,2}=['MATLAB7.0']
a =
[2x2 double] 'MATLAB7.0'
[] []
•一是直接在命令窗口中输入单元数组的名字;
•二是使用函数celldisp(c)来输出。
•想得到单元数组中某一个单元的值时,可以采用c(m,n)或c{m,n}的格式输出。但是它们得到的结果表示形式是不同的。
•函数celldisp(c)更适用于具有大量数据的单元数组的显示。
•c{m,n} 和celldisp(c)显示的结果形式相同。
•celldisp(a,’name’)在窗口中显示的单元型变量的内容的名称为name。
•
•>> c={'abc',eye(2);[1 2;3 4],[1 2]};
•>>c(1,2)
•ans =
•[2x2 double] •>> c{1,2}
•ans =
• 1 0
•0 1
•>> celldisp(c)
•c{1,1} =
•
abc
•c{2,1} =
• 1 2
• 3 4
•c{1,2} =
• 1 0
•0 1
•c{2,2} =
• 1 2
•>> a={[1 2],[1 2 3];[2 3],[2 3 4]};
•>> celldisp(a,'hh')
•hh{1,1} =
•hh{2,1} =
• 2 3
•hh{1,2} =
• 1 2 3
•hh{2,2} =
• 2 3 4
单元数组绘图
h=cellplot(c)返回一个向量,这个向量综合体现了表面、线和句柄。h=cellplot(c,’legend’)返回一个向量,这个向量综合体现了表面、线和句柄,并有图形注释。
Cellplot
a={[1 2;2 2],'MATLAB7.0';'peking',[1 2]};