多维数组
优质
小牛编辑
133浏览
2023-12-01
MATLAB中的多元数组MATLAB是下标多于两个的数组。可以调用带有两个以上变元的zeros
, ones
, rand
, 或randn
函数来产生。例如,
R = randn(3,4,5);
生成一个3*4*5的数组,共有3x4x5 = 60个正态分布的随机元素。
三维数组可能表示三维物理数据,譬如房间的温度,取样于一个长方形网格。或者,可表示一个矩阵序列A(k),或依赖时间变化的矩阵A(t)。在后面这些情形中,第k个矩阵的第(i, j)个元素用A(i,j,k)
表示。
4阶魔方的MATLAB和杜勒的版本不同在于交换了两列。许多魔方可以通过交换列产生。语句
p = perms(1:4);
生成4! = 24个1:4
的排列。第k个排列是行矩阵p(k,:),
那么
A = magic(4); M = zeros(4,4,24); for k = 1:24 M(:,:,k) = A(:,p(k,:)); end
在三维数组M
中保存有24项的魔方序列。M的大小为
size(M) ans = 4 4 24
生成的序列中第三个是杜勒的。
M(:,:,3) ans = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
语句
sum(M,d)
通过改变第d个下标计算和。因此
sum(M,1)
是一个1*4*24的数组,包含24个相同的以下行向量
34 34 34 34
而
sum(M,2)
是一个4*1*24的数组,含有24个相同的以下列向量。
34 34 34 34
最后,
S = sum(M,3)
把序列中的24个矩阵相加。结果的尺寸是4*4*1,故看起来象4*4数组。
S = 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204 204