主要内容

多维阵列

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.

相关的话题