- A+
MATLAB软件多维数组的创建
对于二维数组和三维数组而言,创建方法和一维数组的创建方法不同。
二维数组(也就是矩阵)可以通过以下几种方法来创建。
(1)直接输入二维数组的元素来创建,此时,二维数组的行和列可以通过一维数组的方式来进行创建,不同行之间的数据可以通过分号进行分隔,同一行中的元素可以通过逗号或空格来进行分隔。
(2)通过MATLAB的Array Editor来输入二维数组。创建方法为,单击New Variable创建图标,此时系统在工作空间的变量列表中出现新的矩阵变量,用户可以改变变量的名称。同时,在MATLAB的工作空间出现矩阵编辑器表格,可以直接输入矩阵的数据。
(3)对于大规模的数据,可以通过数据表格方式来输入,此时可以单击选择工作空间的Import Data图标,选中已经编写好的矩阵数据文件后,导入工作空间中。
(4)可以通过MATLAB所提供的其他函数来生成二维数组。
例2.54 二维数组的创建。
>> A=[1 2 3 4 5;linspace(0,6,5);1:2:9;4:8]
A =
1.0000 2.0000 3.0000 4.0000 5.0000
0 1.5000 3.0000 4.5000 6.0000
1.0000 3.0000 5.0000 7.0000 9.0000
4.0000 5.0000 6.0000 7.0000 8.0000
>> A=[1 2 3 4 5;linspace(0,6,5);1:2:9;4:9]
Error using vertcat
CAT arguments dimensions are not consistent.
>> B=[1 2 3
4 5 6
7 8 9]
B =
1 2 3
4 5 6
7 8 9
在创建二维数组的过程中,需要严格保证所生成矩阵的行和列的数目相同。如果两者的数目不同,那么系统将会出现错误提示。此外,在直接生成矩阵的过程中,可以通过按回车键来保证矩阵生成另一行元素。
多维数组(n维数组),如在三维数组中存在行、列和页这样三维,即三维数组中的第三维成为页。在每一页中,存在行和列。在MATLAB中,可以创建更高维的n维数组。但实际上主要用到的还是三维数组。三维数组的创建方法有以下几种。
(1)直接创建方法。在生成过程中,可以选择使用MATLAB提供的一些内置函数来创建三维数组,如zeros、ones、rand、randn等。
(2)通过直接索引的方法进行创建。
(3)使用MATLAB的内置函数reshape和repmat将二维数组转换为三维数组。
(4)使用cat函数将低维数组转化为高维数组。
例2.55 三维数组的创建。
>> A=zeros(5,4,2)
A(:,:,1)=
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
A(:,:,2)=
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> B=zeros(3,3) %通过创建三维数组来扩展
B =
0 0 0
0 0 0
0 0 0
>> B(:,:,2)=ones(3,3) %向三维数组中添加三维数组来增加页
B(:,:,1)=
0 0 0
0 0 0
0 0 0
B(:,:,2)=
1 1 1
1 1 1
1 1 1
>> B(:,:,3)=5 %通过标量扩展得到三维数组的另外一页
B(:,:,1)=
0 0 0
0 0 0
0 0 0
B(:,:,2)=
1 1 1
1 1 1
1 1 1
B(:,:,3)=
5 5 5
5 5 5
5 5 5
>> C=reshape(B,3,9) %得到三维数组
C =
0 0 0 1 1 1 5 5 5
0 0 0 1 1 1 5 5 5
0 0 0 1 1 1 5 5 5
>> C=[B(:,:,1)B(:,:,2)B(:,:,3)] %直接扩展得到三维数组
C =
0 0 0 1 1 1 5 5 5
0 0 0 1 1 1 5 5 5
0 0 0 1 1 1 5 5 5
>> reshape(C,3,3,3) %将得到的三维数组重新生成三维数组
ans(:,:,1)=
0 0 0
0 0 0
0 0 0
ans(:,:,2)=
1 1 1
1 1 1
1 1 1
ans(:,:,3)=
5 5 5
5 5 5
5 5 5
>> A1=zeros(2)
A1 =
0 0
0 0
>> A2=ones(2)
A2 =
1 1
1 1
>> A3=repmat(2,2,2)
A3 =
2 2
2 2
>> A=cat(3,A1,A2,A3) %在第三维上合并低维数组
A(:,:,1)=
0 0
0 0
A(:,:,2)=
1 1
1 1
A(:,:,3)=
2 2
2 2
>> A=cat(2,A1,A2,A3) %在第二维上合并低维数组
A =
0 0 1 1 2 2
0 0 1 1 2 2
>> A=cat(1,A1,A2,A3) %在第一维上合并低维数组
A =
0 0
0 0
1 1
1 1
2 2
2 2
通过以上可以看出,三维数组可以通过多种方法进行创建。在利用内置函数创建过程中,关于这些函数的其他用法,读者可以通过help命令查找相应的帮助文件。