3.11 高维数组
3.11.1 高维数组的创建
【 * 例 3.11.1 -1 】“全下标”元素赋值方式创建高维数组演示。
A(2,2,2)=1 % 单元素赋值创建
数组
A(:,:,1) =
0 0
0 0
A(:,:,2) =
0 0
1
B(2,5,:)=1:3 % 子数组赋值创建
数组
B(:,:,1) =
0 0 0 0 0
0 0 0 0 1
B(:,:,2) =
0 0 0 0 0
0 0 0 0 2
B(:,:,3) =
0 0 0 0 0
0 0 0 0 3
【 * 例 3.11.1 -2 】低维数组合成高维数组。
clear,A=ones(2,3);A(:,:,2)=ones(2,3)*2;A(:,:,3)=ones(2,3)*3
A(:,:,1) =
1 1 1
1 1 1
A(:,:,2) =
2 2 2
2 2 2
A(:,:,3) =
3 3 3
3 3 3
【 * 例 3.11.1 -3 】由函数 ones, zeros, rand, randn 直接创建标准高维数组的示例。
rand('state',1111),rand(2,4,3)
ans(:,:,1) =
0.6278 0.9748 0.2585 0.6949
0.2544 0.2305 0.0313 0.1223
ans(:,:,2) =
0.4889 0.3898 0.8489 0.0587
0.9138 0.3071 0.4260 0.6331
ans(:,:,3) =
0.2802 0.2073 0.7438 0.2714
0.4051 0.2033 0.4566 0.2421
【 * 例 3.11.1 -4 】借助 cat, repmat, reshape 等函数构作高维数组。
(1) cat 构作高维数组示例
cat(3,ones(2,3),ones(2,3)*2,ones(2,3)*3)
ans(:,:,1) =
1 1 1
1 1 1
ans(:,:,2) =
2 2 2
2 2 2
ans(:,:,3) =
3 3 3
3 3 3
(2) repmat 构作高维数组示例
repmat(ones(2,3),[1,1,3])
ans(:,:,1) =
1 1 1
1 1 1
ans(:,:,2) =
1 1 1
1 1 1
ans(:,:,3) =
1 1 1
1 1 1
(3) reshape 构作高维数组示例
reshape(1:12,2,2,3)
ans(:,:,1) =
1 3
2 4
ans(:,:,2) =
5 7
6 8
ans(:,:,3) =
9 11
10 12
3.11.2 高维数组的标识
【 * 例 3.11.2 -1 】维数、大小和长度
clear;A=reshape(1:24,2,3,4);
dim_A=ndims(A) % 测量 A 的维数
size_A=size(A) % 测量 A 的大小
L_A=length(A) % 求 A 的长度
dim_A =
3
size_A =
2 3 4
L_A =
4
3.11.3 高维数组构作和操作函数汇总
【 * 例 3.11.3 -1 】数组元素对称交换指令 flipdim 的使用示例。
A=reshape(1:18,2,3,3) % 创建 3 维数组
A(:,:,1) =
1 3 5
2 4 6
A(:,:,2) =
7 9 11
8
[1] [2] [3] 下一页