主要内容

多维数组

多维数组的MATLAB®是一个数组有超过两个维度。在一个矩阵中,两个维度是由行和列。

每个元素被定义为两个下标,行索引和列索引。多维数组是一个二维矩阵的扩展和使用额外的下标索引。一个三维数组,例如,使用三个下标。前两个是就像一个矩阵,但第三维表示页面的元素。

创建多维数组

您可以创建一个多维数组创建一个二维矩阵,然后扩展它。例如,首先定义一个3×3矩阵是一个三维数组第一页。

一个= [1 2 3;4 5 6;7 8 9)
一个=3×31 2 3 4 5 6 7 8 9

现在添加第二个页面。为此,分配另一个3×3矩阵在第三维度的索引值2。的语法(::2)使用冒号在第一和第二维度包括所有行和列的右边的任务。

(::2)= (10 11 12;13 14 15;16 17 18]
= (::1)= 1 2 3 4 5 6 7 8 9 10 (:,:2)= 11 12 13 14 15 16 17 18

函数可以是一个有用的工具来构建多维数组。例如,创建一个新的三维数组B通过连接一个第三页。第一个参数表明哪个维度连接。

B =猫(3一个[3 2 1;0 9 8;5 3 7])
B = B (:: 1) = 1 2 3 4 5 6 7 8 9 B (:,: 2) = 10 11 12 13 14 15 16 17 18 B (:,:, 3) = 3 2 1 0 9 8 5 3 7

迅速扩大一个多维数组的另一种方法是通过将单个元素分配给整个页面。例如,添加第四个页面B包含所有零。

B (:: 4) = 0
B = B (:: 1) = 1 2 3 4 5 6 7 8 9 B (:,: 2) = 10 11 12 13 14 15 16 17 18 B (:,:, 3) = 3 2 1 0 9 8 5 3 7 B (:,:, 4) = 0 0 0 0 0 0 0 0 0

访问元素

访问多维数组元素,使用整数下标就像向量和矩阵。例如,发现1、2、2的元素一个在第一行,第二列,第二页一个

一个
= (::1)= 1 2 3 4 5 6 7 8 9 10 (:,:2)= 11 12 13 14 15 16 17 18
濒危语言联盟= (1、2、2)
濒危语言联盟= 11

使用索引向量3 [1]在第二个维度访问只有第一个和最后一列的每个页面一个

C = (: 3 [1]:)
C = C (:: 1) = 1 3 4 6 7 9 C (:,: 2) = 10 12 13 15 16 18

发现每一页的第二和第三行,使用冒号运算符来创建索引向量。

D = (2:3,:,)
D = D (:: 1) = 4 5 6 7 8 9 D (:,: 2) = 13 14 15 16 17 18

操作数组

多维数组的元素可以在许多方面,类似于向量和矩阵。重塑,交换,挤压是有用的功能重新排列元素。考虑一个三维数组两页。

重塑一个多维数组可以用于执行某些操作或可视化数据。使用重塑三维数组的函数来重新排列元素6-by-5矩阵。

= (1 2 3 4 5;9 0 6 3 7;8 1 5 0 2];(::2)= (9 7 8 5 2;3 5 8 5 1;6 9 4 3 3];B =重塑(A, 5 [6])
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

重塑经营columnwise,创建新矩阵通过连续的每一列元素一个然后,从第一页开始搬到第二页。

排列是用来重新排列的顺序数组的维度。考虑一个三维数组

(::1)= (1 2 3;4 5 6;7 8 9];(::2)= [0 5 4;2 7 6;9 3 1]
M = M(:: 1) = 1 2 3 4 5 6 7 8 9米(:,:2)= 0 5 4 2 7 6 9 3 1

使用交换函数在每个页面交换行和列下标通过指定第二个参数维度的顺序。最初的行现在列,现在的行和列。

P1 =排列(M [2 1 3])
P1 = P1 (:,: 1) = 1 4 7 2 5 8 3 6 9 P1 (:,: 2) = 0 2 1 9 7 3 4 5 6

同样,交换行和页下标

P2 =排列(M, [3 2 1])
P2 = P2 (:,: 1) = 0 1 2 3 4 5 P2 (:,: 2) = 4 5 6 2 7 6 P2 (:,:, 3) = 7 8 9 9 3 1

在处理多维数组时,您可能会遇到一个长度为1的不必要的维度。的挤压函数执行另一种类型的操作,消除了维度的长度是1。例如,使用repmat函数创建一个2-by-3-by-1-by-4数组的元素都是5,第三维度,其长度为1。

一个= repmat (5 (1 2 3 4))
= (::1,- 1)= 5 5 5 5 5 5 (:,:,1,2)= 5 5 5 5 5 5 (:,:,1,3)= 5 5 5 5 5 5 (:,:,1、4)= 5 5 5 5 5 5
szA =大小(一个)
szA =1×41 2 3 4
numdimsA = ndims (A)
numdimsA = 4

使用挤压函数删除第三维度,导致一个三维数组。

B =挤压(A)
B = B (:: 1) = 5 5 5 5 5 5 B (:,: 2) = 5 5 5 5 5 5 B (:,:, 3) = 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

相关的话题