MATLAB®中的多维数组是一个以上两个维度的数组。在矩阵中,两个维度由行和列表示。
每个元素由两个下标定义,行索引和列索引。多维数组是二维矩阵的扩展,并使用额外的下标来索引。例如,3d数组使用三个下标。前两个就像一个矩阵,但第三个维度代表页面或床单的元素。
您可以首先创建2-D矩阵,然后延伸它来创建多维数组。例如,首先将3×3矩阵定义为3-D阵列中的第一页。
A = [1 2 3;4 5 6;7 8 9)
A =3×31 2 3 4 5 6 7 8 9
现在添加第二页。为此,在第三维中将另一个3 × 3矩阵的索引值赋值为2。的语法A2)
在第一和第二维中使用冒号来包括所有行和来自分配右侧的所有行。
A(:,: 2) = [10 11 12;13 14 15;16 17 18]
a = a(:,:,1)= 1 2 3 4 5 6 7 8 9a(:,2)= 10 11 12 13 13 13 13 17 17 17 18
这猫
函数是构建多维数组的有用工具。例如,创建一个新的3-D阵列B.
通过连接一种
第三页。第一个参数指示要连接的维度。
B =猫(3,A,[3 2 1; 0 9 8; 5 3 7])
B = B(:,:,0 9 8 5 3 7
通过将单个元素分配给整个页面,可以快速扩展多维数组的另一种方法是通过为整个页面分配。例如,添加第四页B.
包含所有零。
B (:: 4) = 0
B = B(:,: 1) = 12 3 4 5 6 7 8 9 B(:,: 2) = 10 11 12 13 14 15 16 17 18 B(:,: 3) = 3 2 10 9 8 5 3 7 B(:,: 4) = 0 0 0 0 0 0 0
要在多维数组中访问元素,请按照向向量和矩阵使用Integer下标。例如,找到1,2,2个元素一种
,它位于第一行,第二列和第二页一种
。
一种
a = a(:,:,1)= 1 2 3 4 5 6 7 8 9a(:,2)= 10 11 12 13 13 13 13 17 17 17 18
濒危语言联盟=(1、2、2)
ELA = 11.
使用索引矢量[1 3]
在第二个维度中,只访问每一页的第一列和最后一列一种
。
c = a(:,[1 3],:)
C = C(:,:,1)= 1 3 4 6 7 9 C(:,:,2)= 10 12 13 15 16 18
要查找每个页面的第二行和第三行,请使用冒号操作符创建索引向量。
d = a(2:3,:,:)
D = D(:,:,1)= 4 5 6 7 8 9 D(:,:,2)= 13 14 15 16 17 17 17 18
多维阵列的元素可以在许多方面移动,类似于向量和矩阵。重塑
那换乘
,挤
是重新排列元素的有用功能。考虑带有两页的3-D阵列。
重塑多维数组对于执行某些操作或可视化数据非常有用。使用重塑
函数将3-D数组中的元素重新排列成一个6 × 5矩阵。
a = [1 2 3 4 5;9 0 6 3 7;8 1 5 0 2];a(:,:,2)= [9 7 8 5 2;3 5 8 5 1;6 9 4 3 3];b =重塑(a,[6 5])
B =6×51 3 5 7 5 9 6 7 5 5 8 5 2 9 3 2 4 9 8 2 0 3 3 8 1 1 0 6 4 3
重塑
通过在每列上取下连续的元素,通过逐栏,创建新矩阵一种
,从第一页开始,然后转到第二页。
排列用于重新排列数组的维数的顺序。考虑一个三维数组m
。
m(:,:,1)= [1 2 3;4 5 6;7 8 9];M(:,:,2)= [0 5 4;2 7 6;9 3 1]
M = M(:,: 1) = 1 2 3 4 5 6 7 8 9
使用换乘
通过指定第二个参数中的尺寸顺序,在每个页面上互换行和列下标。原始行m
现在是列,而列现在是行。
P1 =换算(m,[2 1 3])
P1 = P1(:,:,1)= 1 4 7 2 5 8 3 6 9 P1(:,2)= 0 2 9 5 7 3 4 6 1
类似地,交换行和页的下标m
。
P2 = permute(M,[3 2 1])
P2 = P2(:,: 1) = 1 2 3 0 5 4 P2(:,: 2) = 4 5 6 2 7 6 P2(:,: 3) = 7 8 9 9 3 1
在处理多维数组时,您可能会遇到长度不必要为1的维度。这挤
功能执行另一种类型的操作,可以消除长度的尺寸1.例如,使用repmat
函数创建一个2×3×1-of-4阵列,其元素为每个5,其第三维度具有长度为1。
A = repmat(5,[2 3 1 4])
a = a(:,:,1,1)= 5 5 5 5 5 5 a(:,:,1,2)= 5 5 5 5 5 5 5 a(:,:1,3)= 5 5 55 5 5 A(:,:,1,4)= 5 5 5 5 5 5 5
sza =尺寸(a)
sza =1×42 3 1 4
numdimsA = ndims (A)
numdimsA = 4
使用挤
删除第三维的功能,导致3-D阵列。
B =挤压(a)
B = B(:,:,1)= 5 5 5 5 5 5 B(:,:2)= 5 5 5 5 5 5 5(:,3)= 5 5 5 5 5 5 5 b(:,:4)= 5 5 5 5 5 5
SZB =尺寸(b)
szb =1×32 3 4.
numdimsb = ndims(b)
numdimsb = 3.