文档

操纵多维数组

这个例子展示了如何使用数组有超过两个维度。多维数组可以是数字,字符,细胞,或结构数组。

可以使用多维数组来表示多变量数据。MATLAB®提供了许多功能,直接支持多维数组。万博1manbetx

创建多维数组

多维数组在MATLAB一样创建二维数组。例如,首先3×3的矩阵定义,然后添加一个三维空间。

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

用于构建多维数组的函数是一个有用的工具。B =猫(暗,A1, A2,…)构建一个多维数组连接A1, A2……沿着维度昏暗的

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

调用可以嵌套。

=猫([9 2;6 5],[7 1;8 4]);B =猫(3,[3 5;0 1]、[5 6;2 1]);C =猫(4 A, B,猫(3、1 2;3 4],[4 3;2 1]));

发现尺寸

大小ndims返回矩阵的大小和数量的维度。

SzA =大小(一个)
SzA =1×32 2 2
DimsA = ndims (A)
DimsA = 3
SzC =大小(C)
SzC =1×42 2 2 3
DimsC = ndims (C)
DimsC = 4

访问元素

访问多维数组的一个元素,使用整数下标。例如,使用一个从上面定义的,(1、2、2)返回1。

数组下标可以向量。例如:

K = C (:,: 1 3 [1])
K = K (:,:, 1, 1) = 9 2 6 5 K (:,:, 1, 2) = 1 2 3 4

操纵多维数组

重塑,交换,挤压用于操纵n维数组。重塑行为是对二维数组。的操作交换所示的是。

一个是一个3-by-3-by-2数组。(2一3)交换()返回一个数组的行和列的下标逆转(维度1行,维度2列,维度3是深度等等)。同样的,交换(A, (3,2,1))返回一个数组,第一个和第三个下标互换。

一个=兰德(3、3、2);B =排列(A [2 1 3]);C =排列(,(3 2 1));

选择二维矩阵的多维数组

之类的函数eig对飞机进行操作或二维矩阵不接受多维数组作为参数。等功能应用于不同飞机的多维数组,使用索引或循环。例如:

=猫(3、1 2 3;9 8 7;4 6 5],[0 3 2;8 8 4;5 3 5),[6 4 7;6 8 5;5 4 3]);% EIG函数应用于每一个水平的“片”。我= 1:3 eig(挤压((我::)))结束
ans =3×110.3589 -1.0000 1.6411
ans =3×1复杂21.2293 + 0.0000我0.3854 + 1.5778 0.3854 - 1.5778
ans =3×1复杂13.3706 + 0.0000我-1.6853 + 0.4757 -1.6853 - 0.4757

interp3,interpn,ndgrid插值的例子和数据网格功能,特别在多维数据操作。这是一个例子ndgrid应用于一个n维矩阵。

x1 = 2 * pi:π/ 10:0;x2 = 2 * pi:π/ 10:4 *π;x3 = 0:π/ 2 *π;(x1, x2, x3) = ndgrid (x1, x2, x3);z = x1 + exp (cos (2 * x2。^ 2)) +罪(x3。^ 3);片(z, 10 15] [5, 10, 12 [5]);轴

您可以构建多维细胞数组和多维结构数组,也可以在多维数值和细胞阵列之间进行转换。

了解更多,参考MATLAB文档多维数组。

这个主题有帮助吗?