发布企业信息

MATLAB 高维数组

作者:未知  信息来源:未知  2006-1-26

字体大小:  网友评论  进入论坛  

11 高维数组3。1 高维数组的创建【 * 例 3。1 -1 】“全下标”元素赋值方式创建高维数组演示。A(2,2,2)=1 % 单元素赋值创建 数组A(:,:,1) =0 00 0A(:,:,2) =0 0•。...


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 10 12
A(:,:,3) =
13 15 17
14 16 18

flipdim(A,1) % 关于“行平分面”交换对称位置上的元素
ans(:,:,1) =
2 4 6
1 3 5
ans(:,:,2) =
8 10 12
7 9 11
ans(:,:,3) =
14 16 18
13 15 17

flipdim(A,3) % 关于“页平分面”交换对称位置上的元素
ans(:,:,1) =
13 15 17
14 16 18
ans(:,:,2) =
7 9 11
8 10 12
ans(:,:,3) =
1 3 5
2 4 6

【 * 例 3.11.3 -2 】数组的“维序号左移”重组。
shiftdim(A,1) % “维号左移 1 位”重组,使 数组变成 数组
ans(:,:,1) =
1 7 13
3 9 15
5 11 17
ans(:,:,2) =
2 8 14
4 10 16
6 12 18

shiftdim(A,2) % “维号左移 2 位”重组,使 数组变成 数组
ans(:,:,1) =
1 2
7 8
13 14
ans(:,:,2) =
3 4
9 10
15 16
ans(:,:,3) =
5 6
11 12
•  18

【 * 例 3.11.3 -3 】广义非共轭转置。
permute(A,[2,3,1]) % 相当于 shiftdim(A,1)
ans(:,:,1) =
1 7 13
3 9 15
5 11 17
ans(:,:,2) =
2 8 14
4 10 16
6 12 18
permute(A,[1,3,2])
ans(:,:,1) =
1 7 13
2 8 14
ans(:,:,2) =
3 9 15
4 10 16
ans(:,:,3) =
5 11 17
6 12 18

【 * 例 3.11.3 -4 】“孤维”的撤消和降维。
B=cat(4,A(:,:,1),A(:,:,2),A(:,:,3)) % 串接为 4 维数组
B(:,:,1,1) =
1 3 5
2 4 6
B(:,:,1,2) =
7 9 11
8 10 12
B(:,:,1,3) =
13 15 17
14 16 18
size(B) % 测量数组 B 的大小
ans =
2 3 1 3
C=squeeze(B) % 撤消长度为 1 的“孤维” , 使原 4 维数组减为 3 维数组。
C(:,:,1) =
1 3 5
2 4 6
C(:,:,2) =
7 9 11
8 10 12
C(:,:,3) =
13 15 17
14 16 18
size(C)
ans =
2 3 3

【 * 例 3.11.3 -5 】赋“空阵”值操作。
A=reshape(1:18,2,3,3) % 创建 3 维数组
A(:,:,1) =
1 3 5
2 4 6
A(:,:,2) =
7 9 11
8 10 12
A(:,:,3) =
13 15 17
14 16 18
A(:,2:3,:)=[] % 赋“空”,使原 A 数组的第二、三列消失。
B=A;
A(:,:,1) =
1
2
A(:,:,2) =
7
8
A(:,:,3) =
13
14
size(A)
ans =
2 1 3
A_1=squeeze(A) % 撤消“孤维”,数组由 3 维降为 2 维。
A_1 =
1 7 13
2 8 14
size(B) %B 数组与 A 同样存在“孤维”
ans =
2 1 3
B(:,1,:)=[] % 对“孤维”赋“空”,不能降维!
B =
Empty array: 2-by-0-by-3

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》