版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多维数组
一般表达式为 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)
>> practice
A =
8 1 6
3 5 7
4 9 2
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
4 2 1
9 3 1
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
4 2 1
9 3 1
A(:,:,3) =
1 1 1
1 2 3
1 3 6
- 通过矩阵生成多维函数
B = rand(4, 4, 3)
>> practice
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
A = [1 2; 3 4]
C = repmat(A,[3, 4, 3]) %把矩阵A复制成3*4,复制后再复制3页
>> practice
A =
1 2
3 4
C(:,:,1) =
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
C(:,:,2) =
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
C(:,:,3) =
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
A = magic(3)
B = ones(3)
C = eye(3)
D = cat(3,A,B,C)
>> practice
A =
8 1 6
3 5 7
4 9 2
B =
1 1 1
1 1 1
1 1 1
C =
1 0 0
0 1 0
0 0 1
D(:,:,1) =
8 1 6
3 5 7
4 9 2
D(:,:,2) =
1 1 1
1 1 1
1 1 1
D(:,:,3) =
1 0 0
0 1 0
0 0 1
多维数组的运算
B(:,:,1) = magic(3);
B(:,:,2) = ones(3);
B(:,:,3) = eye(3);
size(B)
sum(B) %数组求和
prod(B) %数组求乘积
>> practice
ans =
3 3 3
ans(:,:,1) =
15 15 15
ans(:,:,2) =
3 3 3
ans(:,:,3) =
1 1 1
ans(:,:,1) =
96 45 84
ans(:,:,2) =
1 1 1
ans(:,:,3) =
0 0 0