知识
多维数组一般表达式:A(i,j,k…),其中,A为多维数组名,i,j,k为一二三维下标索引值,i称为行,j称为列,k称为页。
多维数组的创建
- 通过直接赋值取得
>> A(:,:,1) = magic(3);
>> A(:,:,2) = vander([1 2 3]);
>> A(:,:,3) = pascal(3);
>> A
- 通过矩阵函数生成多维数组
1、设置三维正态分布的随机矩阵B,m = n = 4,k = 3。
注意:生成正态分布的随机矩阵用rand()
>>B = rand(4,4,3)
B(:,:,1) =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
B(:,:,2) =
0.4218 0.6557 0.6787 0.6555
0.9157 0.0357 0.7577 0.1712
0.7922 0.8491 0.7431 0.7060
0.9595 0.9340 0.3922 0.0318
B(:,:,3) =
0.2769 0.6948 0.4387 0.1869
0.0462 0.3171 0.3816 0.4898
0.0971 0.9502 0.7655 0.4456
0.8235 0.0344 0.7952 0.6463
2、用矩阵复制生成多维矩阵C,它是由矩阵A = 复制成3 3 4矩阵。
>> A = [1 2;3 4];
>> C = repmat(A,[3,4,3])
注意:repmat()用法:将矩阵A复制成3*4,复制后再复制3页。
3、用矩阵连接函数生成多维数组
注意:cat()函数的用法:D = cat(维数,A,B,C…),则A、B、C分别为D的1、2、3页
>> A = magic(3);
>> B = ones(3);
>> C = eye(3);
>> D = cat(3,A,B,C);
>> D
多维数组的运算
某些函数不支持多维数组时,可分别用二维数组多次运算代替。
>> B(:,:,1) = magic(3);
>> B(:,:,2) = ones(3);
>> B(:,:,3) = eye(3);
>> size(B)
>> sum(B)
>> prod(B)
(存疑:每列求和求积还是每行?)