1. 创建一维数组的方法
1)直接输入法
使用分号,创建一维列数组;使用空格,创建一维行数组
2)步长生成法
a:inc:b
3) 定数线性采样发
x=linspace(a,b,n) 在设定的“总个数”条件下,均匀采样分布生成一维行数组,其中a,b分别是数组的第一个和最后一个元素,n标识采样点数
4)定数对数采样法
x=logspace(a,b,n) 经过“常用对数”采样生成一维行向量
2. 创建高维数组
1)使用下标创建
A(1,2,1)=1;
>> B(3,4,:)=2:5
B(:,:,1) =
0 0 0 0
0 0 0 0
0 0 0 2
B(:,:,2) =
0 0 0 0
0 0 0 0
0 0 0 3
B(:,:,3) =
0 0 0 0
0 0 0 0
0 0 0 4
B(:,:,4) =
0 0 0 0
0 0 0 0
0 0 0 5
2) 使用低维数组创建三维数组
>> D3(:,:,1)=D2;
>> D3(:,:,2)=2*D2;
>> D3(:,:,3)=3*D2;
>> D3
D3(:,:,1) =
1 2 3
4 5 6
7 8 9
D3(:,:,2) =
2 4 6
8 10 12
14 16 18
D3(:,:,3) =
3 6 9
12 15 18
21 24 27
3)使用创建函数创建三维数组
A。cat
>> D2=[1,2,3;4,5,6;7,8,9];
>> D2
D2 =
1 2 3
4 5 6
7 8 9
>> C=cat(3,D2,2*D2,3*D2);
>> C
C(:,:,1) =
1 2 3
4 5 6
7 8 9
C(:,:,2) =
2 4 6
8 10 12
14 16 18
C(:,:,3) =
3 6 9
12 15 18
21 24 27
cat 命令的功能是链接数组,其调用格式为C=cat(dim,A1,A2,A3,...)其中,dim标识创建数组的维度,其他各维度上的数组
B。repmat命令
>> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3
D3 =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
>> D4
D4(:,:,1) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,2) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,3) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
repmat命令的功能在于复制并堆砌数组,其调用格式为B=repmat(A,[m n p ...])中,A表示复制的数组模块,第二个输入参数则表示该数组模块在各个维度上的复制个数(m 表示行复制个数 n 表示列复制个数 p 表示复制的维数)
C。reshape命令
>> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3
D3 =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
>> D4
D4(:,:,1) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,2) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,3) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
reshape命令的功能在于修改数组的大小,因此用户可以将二维数组通过该命令修改为三维的数组,调用格式为
B=reshape(A,[m n p ...])其中A就是待重组的矩阵,后面的输入参数则表示数组各维的维度
3. 选取低维数组的对角元素
使用diag命令来选取对角元素或者创建矩阵
>> Data=[1,2,3,4;5,6,7,8;9,10,11,12]
A1=diag(Data,1);A2=diag(Data)
A3=diag(Data,-1)
B1=diag(A2,1)
B2=diag(A3,1)
Data =
1 2 3 4
5 6 7 8
9 10 11 12
A2 =
1
6
11
A3 =
5
10
B1 =
0 1 0 0
0 0 6 0
0 0 0 11
0 0 0 0
B2 =
0 5 0
0 0 10
0 0 0
diag命令的功能是选取矩阵对角线的数组,也可以将某个数组来创建矩阵,可以很方便地利用该命令处理矩阵对角线的数据。
4.低维数组的形式转换
对数组或者矩阵来进行形式转换:对称变换和旋转
flipr: 以数组的垂直中线为对称轴,交换左右对称位置上的数组元素
flipud: 以数组的水平中线为对称轴,交换左右上下对称位置上的数组元素
rot90: 逆时针旋转二维数组90度
5. 构架数组
构架数组是一个比较特殊的数组类型,在该数组中可以存放各种不同类型的数据。构架数组的基本组成是构架,数组汇总的每个构架都是平等的,他们主要用下标来区分。构架必须在划分“域”之后才能使用,数据不能直接存放在构架数组中,而智能直接存放在构架的域中。
1)使用直接放创建单构架数组
>> patient.name='John';
>> patient.medi_information.city='Changsha'
patient =
name: 'John'
medi_information: [1x1 struct]
>> whos patient
Name Size Bytes Class Attributes
patient 1x1 396 struct
2) 使用命令创建构架数组
>> W=struct('city',{'Changsha','Chengdu'},'temp',{43,444})
W =
1x2 struct array with fields:
city
temp
1)直接输入法
使用分号,创建一维列数组;使用空格,创建一维行数组
2)步长生成法
a:inc:b
3) 定数线性采样发
x=linspace(a,b,n) 在设定的“总个数”条件下,均匀采样分布生成一维行数组,其中a,b分别是数组的第一个和最后一个元素,n标识采样点数
4)定数对数采样法
x=logspace(a,b,n) 经过“常用对数”采样生成一维行向量
2. 创建高维数组
1)使用下标创建
A(1,2,1)=1;
>> B(3,4,:)=2:5
B(:,:,1) =
0 0 0 0
0 0 0 0
0 0 0 2
B(:,:,2) =
0 0 0 0
0 0 0 0
0 0 0 3
B(:,:,3) =
0 0 0 0
0 0 0 0
0 0 0 4
B(:,:,4) =
0 0 0 0
0 0 0 0
0 0 0 5
2) 使用低维数组创建三维数组
>> D3(:,:,1)=D2;
>> D3(:,:,2)=2*D2;
>> D3(:,:,3)=3*D2;
>> D3
D3(:,:,1) =
1 2 3
4 5 6
7 8 9
D3(:,:,2) =
2 4 6
8 10 12
14 16 18
D3(:,:,3) =
3 6 9
12 15 18
21 24 27
3)使用创建函数创建三维数组
A。cat
>> D2=[1,2,3;4,5,6;7,8,9];
>> D2
D2 =
1 2 3
4 5 6
7 8 9
>> C=cat(3,D2,2*D2,3*D2);
>> C
C(:,:,1) =
1 2 3
4 5 6
7 8 9
C(:,:,2) =
2 4 6
8 10 12
14 16 18
C(:,:,3) =
3 6 9
12 15 18
21 24 27
cat 命令的功能是链接数组,其调用格式为C=cat(dim,A1,A2,A3,...)其中,dim标识创建数组的维度,其他各维度上的数组
B。repmat命令
>> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3
D3 =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
>> D4
D4(:,:,1) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,2) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,3) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
repmat命令的功能在于复制并堆砌数组,其调用格式为B=repmat(A,[m n p ...])中,A表示复制的数组模块,第二个输入参数则表示该数组模块在各个维度上的复制个数(m 表示行复制个数 n 表示列复制个数 p 表示复制的维数)
C。reshape命令
>> D3=repmat(D2,2,3);
>> D4=repmat(D2,[1 2 3]);
>> D3
D3 =
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
1 2 3 1 2 3 1 2 3
4 5 6 4 5 6 4 5 6
7 8 9 7 8 9 7 8 9
>> D4
D4(:,:,1) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,2) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
D4(:,:,3) =
1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9
reshape命令的功能在于修改数组的大小,因此用户可以将二维数组通过该命令修改为三维的数组,调用格式为
B=reshape(A,[m n p ...])其中A就是待重组的矩阵,后面的输入参数则表示数组各维的维度
3. 选取低维数组的对角元素
使用diag命令来选取对角元素或者创建矩阵
>> Data=[1,2,3,4;5,6,7,8;9,10,11,12]
A1=diag(Data,1);A2=diag(Data)
A3=diag(Data,-1)
B1=diag(A2,1)
B2=diag(A3,1)
Data =
1 2 3 4
5 6 7 8
9 10 11 12
A2 =
1
6
11
A3 =
5
10
B1 =
0 1 0 0
0 0 6 0
0 0 0 11
0 0 0 0
B2 =
0 5 0
0 0 10
0 0 0
diag命令的功能是选取矩阵对角线的数组,也可以将某个数组来创建矩阵,可以很方便地利用该命令处理矩阵对角线的数据。
4.低维数组的形式转换
对数组或者矩阵来进行形式转换:对称变换和旋转
flipr: 以数组的垂直中线为对称轴,交换左右对称位置上的数组元素
flipud: 以数组的水平中线为对称轴,交换左右上下对称位置上的数组元素
rot90: 逆时针旋转二维数组90度
5. 构架数组
构架数组是一个比较特殊的数组类型,在该数组中可以存放各种不同类型的数据。构架数组的基本组成是构架,数组汇总的每个构架都是平等的,他们主要用下标来区分。构架必须在划分“域”之后才能使用,数据不能直接存放在构架数组中,而智能直接存放在构架的域中。
1)使用直接放创建单构架数组
>> patient.name='John';
>> patient.medi_information.city='Changsha'
patient =
name: 'John'
medi_information: [1x1 struct]
>> whos patient
Name Size Bytes Class Attributes
patient 1x1 396 struct
2) 使用命令创建构架数组
>> W=struct('city',{'Changsha','Chengdu'},'temp',{43,444})
W =
1x2 struct array with fields:
city
temp