数据阵列类型与结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章:主要内容
❖ 6.1 多维阵列 ❖ 6.2 结构阵列 ❖ 6.3 单元阵列 ❖ 6.4 复杂阵列结构 ❖ 6.5 多维阵列、结构阵列和单元阵列函数
6.1 多维阵列
从MATLAB 5.0版本开始,支持多维阵 列。多维阵列是二维矩阵的推广,它可用来 表示更复杂的数据。 一、多维阵列的建立 ❖ 直接利用下标建立; ❖ 利用MATLAB函数建立; ❖ 利用cat函数建立; ❖ 用户自己编写M文件产生。
Grand total is 24 elements using 192 bytes
二 、 多维阵列信息
ndims 多维阵列的维数 size 阵列各维的尺寸 whos 阵列的存储和格式
三 、多维阵列的使用
下标访问技术 阵列重新排列 reshape 不改变矩阵元素,改变其尺寸和维数 squeeze 删除多维阵列中的单点维 (对二维矩阵无用 ) 阵列的序列变换 permute 改变多维阵列中指定维的次序
一、建立结构阵列 p =
直接使用赋值语句; 利用struct函数。 例如:
name: 'Wang Jun' billing: 127
test: [3x3 double] size(p)
p.name='Wang Jun';
ans =
p.billing=127.00;
11
p.test=[79 75 73;180 178 177.5; 220 210 205];
四 多维阵列的计算
面向向量的函数 sum, mean, cross
面向元素的函数 三角函数、指数函数可以适用于多维阵列
面向矩阵的函数 线性代数、矩阵函数不能应用于多维阵列 A=normrnd(4,3,5) eig(A) ERROR
6.2 结构阵列
结构阵列由多个域构成,每个域可存放各种类型的
数据,如数值、字符串。 p
9 9 -8
如果再输入 a(:,:,3)=6; a(:,:,3) ans=
666 666 666
R=randn(5,4,3); Z=zeros(100,5,2); Y=ones(155,7,8); X=sin(R);
whos Name Size
Bytes Class
R 5x4x3
480 double array
X 5x4x3
480 double array
Y 155x7x8 69440 double array
Z 100x5x2 8000 double array
a 3x3x3
216 double array
Grand total is 9827 elements using 78616 bytes
a=[2 8;0 5]; b=[1 8;2 4];
例如: a=[5 4 3;0 2 1;8 2 -7];
a(:,:,2)=[0 1 0;2 1 3;9 9 -8]
a(:,:,1) =
5 4 3 whos 0 2 1 Name Size Bytes
Class
8 2 -7
a(:,:,2) =
a
3x3x2 144 double array
0 1 0 Grand total is 18 elements using 144 bytes 213
c=cat(3,a,b); d=cat(4,a,b); size(d)
whos Name Size
ans =
a
2 2 1 2b
c
d
2x2 2x2 2x2x2 4-D
Bytes Class
32 double array 32 double array 64 double array 64 double array
A(3,[2,3],4); A(3,:,4) B=reshape(C,2,3); D=repmat(5,[2,7,1,9,4]);E=squeeze(D); size(D); 2 7 1 9 4 size(E); 2 7 9 4 M=randn(2,3,4,5); F=permute(M,[1,3,2,4]); size(F); 2 4 3 5
四、结构嵌套
q q= 1x2 struct array with fields:
name billing test 这时得到的结构q与前例的结构p一样。
二、结构阵列数据的使用
n1=p(1).name n1 = Wang Jun b1=p(1).billing b1 =
127 disp(['The cost of ',n1,' in hospital is
name
可得到结构p包含的域
billing
名。
test
我们还可以利用struct函数直接建立结构。例如对 以上示例,可输入
n={'Wang Jun','Li Ming'}; b={127 28.5}; t1=[79 75 73;180 178 177.5; 220 210 205]; t2=[68 70 68;118 117 119;172 170 169]; q=struct('name',n,'billing',b,'test',{t1,t2});
再输入第二个人的信息:
p(2).name='Li Ming';
p(2).billing=28.5;
p(2).test=[68 70 68;118 117 119;172 170 169];
p
wenku.baidu.com
p=
这样可以建立结构阵
1x2 struct array with fields: 列。N=fieldnames(p)
',num2str(b1)]) The cost of Wang Jun in hospital is 127
disp(['The cost of ',q(2).name,' in hospital is ', num2str(q(2).billing)])
The cost of Li Ming in hospital is 28.5 second=p(2) second =
name: 'Li Ming' billing: 28.5000
test: [3x3 double]
三、结构阵列应用于函数和操作符
mean(p(2).test) ans =
119.3333 119.0000 118.6667 total=sum([p.billing]) total =
155.5000
相关文档
最新文档