




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB程序设计目录基本概念向量运算矩阵运算多维数组运算变量初始化与输出第二章语言基础基本概念向量运算多维数组运算第二章语言基础矩阵运算基本概念向量运算多维数组运算第二章语言基础基本概念第二章语言基础多维数组运算第二章语言基础多维数组运算第二章语言基础多维数组运算第二章语言基础多维数组运算多维数组运算多维数组生成多维数组其他操作多维数组逻辑运算多维数组关系运算多维数组算术运算问题5多维数组可实施的其他操作及其具体方法。问题的提出多维数组其他操作学习的重点与目标掌握多维数组的存储次序掌握多维数组大小与维度的计算掌握多维数组索引与寻址的操作掌握多维数组缩减与扩展的操作掌握多维数组裁剪与合并的操作掌握多维数组查找与排序的操作页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。12345678页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。123491011125678页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。123491011125678页数次序单下标三下标次序单下标三下标次序单下标三下标第2页页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。123491011125678页数次序单下标三下标次序单下标三下标次序单下标三下标第2页13141516页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。123491011125678页数次序单下标三下标次序单下标三下标次序单下标三下标第2页1314151617181920页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。123491011125678页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)56789101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)A(1,3,1)A(2,3,1)A(3,3,1)A(4,3,1)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)A(1,3,1)A(2,3,1)A(3,3,1)A(4,3,1)A(1,1,2)A(2,1,2)A(3,1,2)A(4,1,2)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)A(1,3,1)A(2,3,1)A(3,3,1)A(4,3,1)A(1,1,2)A(2,1,2)A(3,1,2)A(4,1,2)A(1,2,2)A(2,2,2)A(3,2,2)A(4,2,2)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)5678A(5)A(6)A(7)A(8)9101112页数次序单下标三下标次序单下标三下标次序单下标三下标第2页131415161718192021222324A(9)A(10)A(11)A(12)A(13)A(14)A(15)A(16)A(17)A(18)A(19)A(20)A(21)A(22)A(23)A(24)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)A(1,3,1)A(2,3,1)A(3,3,1)A(4,3,1)A(1,1,2)A(2,1,2)A(3,1,2)A(4,1,2)A(1,2,2)A(2,2,2)A(3,2,2)A(4,2,2)A(1,3,2)A(2,3,2)A(3,3,2)A(4,3,2)页数次序单下标三下标次序单下标三下标次序单下标三下标第1页多维数组的存储次序。多维数组存储次序是二维数组存储次序的扩展。二维数组的存储次序是按列的先后顺序存放,三维数组的存储次序则是按页的先后顺序存放,四维数组的存储次序则是按第四维的先后顺序存放,以此类推。1234A(1)A(2)A(3)A(4)A(1,1,1)A(2,1,1)A(3,1,1)A(4,1,1)5678A(5)A(6)A(7)A(8)A(1,2,1)A(2,2,1)A(3,2,1)A(4,2,1)9101112A(9)A(10)A(11)A(12)A(1,3,1)A(2,3,1)A(3,3,1)A(4,3,1)页数次序单下标三下标次序单下标三下标次序单下标三下标第2页13141516A(13)A(14)A(15)A(16)A(1,1,2)A(2,1,2)A(3,1,2)A(4,1,2)17181920A(17)A(18)A(19)A(20)A(1,2,2)A(2,2,2)A(3,2,2)A(4,2,2)21222324A(21)A(22)A(23)A(24)A(1,3,2)A(2,3,2)A(3,3,2)A(4,3,2)三维数组的元素按其存储的先后次序可用单个自然数表示为A(q)。三维数组的元素也可采用三下标表示法。对于m×n×s的三维数组A,它由s个m×n的二维数组叠放而成,如果用符号i和j分别表示每一个二维数组的行下标和列下标,再用符号k表示三维数组的页下标,则三维数组A中第i行、第j列、第k页的元素可表示为A(i,j,k)。单下标中的q和三下标中的i,j,k间满足q=i+m*(j-1)+m*n*(k-1),以及k=fix((q-1)/(m*n))+1,j=fix(((q-1)-m*n*(k-1))/m)+1和i=rem((q-1)-m*n*(k-1),m)+1。>>m=4;n=3;s=2;>>i=2;j=
2;k=1;>>q
=
i
+
m*(j-1)
+
m*n*(k-1)q=6>>i=2;j=
3;k=1;>>q
=
i
+
m*(j-1)
+
m*n*(k-1)q=10>>i=3;j=
2;k=2;>>q
=
i
+
m*(j-1)
+
m*n*(k-1)q=19>>i=3;j=3;k=2;>>q
=
i
+
m*(j-1)
+
m*n*(k-1)q=23>>m=4;n=3;s=2;>>q=
10;>>k
=
fix((q-1)
/
(m*n))
+
1;>>j
=
fix(((q-1)
-
m*n*(k-1))
/
m)
+
1;>>i
=
rem((q-1)
-
m*n*(k-1),
m)
+
1;>>[i,j,k]ans=231>>q=19;>>k
=
fix((q-1)
/
(m*n))
+
1;>>j
=
fix(((q-1)
-
m*n*(k-1))
/
m)
+
1;>>i
=
rem((q-1)
-
m*n*(k-1),
m)
+
1;>>[i,j,k]ans=322三维数组的元素按其存储的先后次序可用单个自然数表示为A(q)。三维数组的元素也可采用三下标表示法。对于m×n×s的三维数组A,它由s个m×n的二维数组叠放而成,如果用符号i和j分别表示每一个二维数组的行下标和列下标,再用符号k表示三维数组的页下标,则三维数组A中第i行、第j列、第k页的元素可表示为A(i,j,k)。单下标中的q和三下标中的i,j,k间满足q=i+m*(j-1)+m*n*(k-1),以及k=fix((q-1)/(m*n))+1,j=fix(((q-1)-m*n*(k-1))/m)+1和i=rem((q-1)-m*n*(k-1),m)+1。多维数组大小与维度。三维数组的维度即行数、列数和页数,可采用函数size计算。给定三维数组A,调用格式size(A)可同时计算三维数组A的行数、列数和页数,而调用格式size(A,1)、size(A,2)和size(A,3)则分别计算三维数组A的行数、列数和页数。函数length计算矩阵行数、列数和页数的最大者,格式为length(A),以及函数numel计算三维数组A的元素总个数,格式为numel(A)。>>A=rand(3,4,2);>>size(A)ans=342
>>size(A,1)ans=3>>size(A,2)ans=4>>size(A,3)ans=2>>length(A)ans=4>>numel(A)ans=24>>[m,n,
s]=size(A)m=3n=4s=
2>>m=size(A,1)m=3>>n=size(A,2)n=4>>s=size(A,3)s=
2>>p=
length(A)p=4>>q=numel(A)q=
24数组索引与寻址。数组索引是指向存储在数组中的元素的地址,而数组寻址是根据索引定位数组中元素的过程或方式。因此,根据数组的索引与寻址可实施数组某个或些元素的访问和重新赋值。三维数组元素的地址可采用单或三下标表示,因此可借助一个或三个自然数表示元素的索引,并根据索引定位数组的某个或些元素。(1)以单下标为索引。借助单个自然数或多个自然数构成的向量为索引可定位数组中对应地址的元素,从而采用单下标表示法可访问或重新赋值数组的一或多个元素。此时在构成索引向量过程中,可采用冒号表达式生成索引向量,以及采用代表数组位置的最大值的关键字end,即end可指示最大位置、行数、列数和页数的数组索引。>>A=rand(2,3,2)A(:,:,1)=0.78030.24170.09650.38970.40390.1320A(:,:,2)=0.94210.57520.23480.95610.05980.3532>>A(3)ans=
0.2417>>A(7)ans=
0.9421>>A([147])ans=
0.78030.40390.9421>>A(2:3:end)ans=
0.38970.09650.95610.2348数组索引与寻址。数组索引是指向存储在数组中的元素的地址,而数组寻址是根据索引定位数组中元素的过程或方式。因此,根据数组的索引与寻址可实施数组某个或些元素的访问和重新赋值。三维数组元素的地址可采用单或三下标表示,因此可借助一个或三个自然数表示元素的索引,并根据索引定位数组的某个或些元素。(1)以单下标为索引。借助单个自然数或多个自然数构成的向量为索引可定位数组中对应地址的元素,从而采用单下标表示法可访问或重新赋值数组的一或多个元素。此时在构成索引向量过程中,可采用冒号表达式生成索引向量,以及采用代表数组位置的最大值的关键字end,即end可指示最大位置、行数、列数和页数的数组索引。(2)以三下标为索引。借助三个单个自然数或多个自然数构成的向量为索引可定位数组中对应地址的元素,从而采用三下标表示法可访问或重新赋值数组的一个或多个元素。此时在构成向量过程中,也可采用冒号表达式生成索引向量,以及采用代表数组位置的最大值的关键字end,即end可以指示最大位置、行数和列数的数组索引。>>A=rand(2,3,2)A(:,:,1)=0.68680.36850.78020.18350.62560.0811A(:,:,2)=0.92940.48680.44680.77570.43590.3063>>A(2,2,1)ans=0.6256>>A(2,3,2)ans=0.3063>>A(1,[13],1)ans=0.68680.7802>>A(1:2,3,2)ans=0.15760.9706>>A(1:2,1:3,2)ans=0.92940.48680.44680.77570.43590.3063>>A(1:end,1:3,1)ans=0.68680.36850.78020.18350.62560.0811>>A(1:end,1:end,2)ans=0.92940.48680.44680.77570.43590.3063>>A(:,1:3,1)ans=0.81470.12700.63240.90580.91340.0975>>A(1:2,:,2)ans=0.92940.48680.44680.77570.43590.3063>>A(:,1:2,:)ans(:,:,1)=0.68680.36850.18350.6256ans(:,:,2)=0.92940.48680.77570.4359多维数组缩减与扩展。多维数组缩减是删除原数组一部分地址及其元素,使原数组变成一个维度更小的新数组,其方法为:对需删除的地址及其元素赋值为空矩阵[
]。多维数组扩展是指对原数组增加一些地址并在其上添加新元素,使原数组变成一个维度更大的新数组,其方法为:对需增加的地址及其元素赋予相应数值。在对原数组实施扩展时,MATLAB并未要求对原数组增加的所有地址都赋予值,对未赋值的地址,MATLAB将自动初始化为0,但最大地址必须赋值。>>A=rand(6,5,3);>>A([13],:,:)=[]A(:,:,1)=0.09380.67140.26210.35920.53030.52010.75490.39470.86110.34770.24280.68340.48490.15000.44240.7040A(:,:,2)=0.01960.42990.75510.67130.42430.39120.21600.83350.27030.76910.79040.76890.19710.39680.94930.1673A(:,:,3)=0.98990.40700.09000.49500.88430.82560.13630.05500.58800.79000.67870.85070.15480.31850.49520.5606>>A(:,1:2:end,:)=[]A(:,:,1)=0.67140.35920.52010.39470.34770.68340.15000.7040A(:,:,2)=0.42990.67130.39120.83350.76910.76890.39680.1673A(:,:,3)=0.40700.49500.82560.05500.79000.85070.31850.5606>>A(:,:,2)=[]A(:,:,1)=0.67140.35920.52010.39470.34770.68340.15000.7040A(:,:,2)=0.40700.49500.82560.05500.79000.85070.31850.5606>>
A=[]A=[]>>A=rand(2,2,2)A(:,:,1)=0.66280.89850.33080.1182A(:,:,2)=0.98840.70690.54000.9995>>A(3,:,1)=[12]A(:,:,1)=0.66280.89850.33080.1182
1.00002.0000A(:,:,2)=0.98840.70690.54000.9995
00>>A=rand(2,2,2)A(:,:,1)=0.66280.89850.33080.1182A(:,:,2)=0.98840.70690.54000.9995>>A(3,:,2)=[34]A(:,:,1)=0.66280.89850.33080.11821.00002.0000A(:,:,2)=0.98840.70690.54000.9995
3.00004.0000>>A=rand(2,2,2)A(:,:,1)=0.66280.89850.33080.1182A(:,:,2)=0.98840.70690.54000.9995>>A(3,:,2)=[34]A(:,:,1)=0.66280.89850.33080.11821.00002.0000A(:,:,2)=0.98840.70690.54000.99953.00004.0000>>A=rand(3,2,2)A(:,:,1)=0.81470.91340.90580.63240.12700.0975A(:,:,2)=0.27850.96490.54690.15760.95750.9706>>A(:,3,2)=[1;2;3]A(:,:,1)=0.81470.913400.90580.632400.12700.09750A(:,:,2)=0.27850.96491.00000.54690.15762.00000.95750.97063.0000>>A=rand(3,2,2)A(:,:,1)=0.81470.91340.90580.63240.12700.0975A(:,:,2)=0.27850.96490.54690.15760.95750.9706>>A(:,3,1)=[4;5;6]A(:,:,1)=0.81470.91344.00000.90580.63245.00000.12700.09756.0000A(:,:,2)=0.27850.96491.00000.54690.15762.00000.95750.97063.0000>>A=rand(2,2,2)A(:,:,1)=0.66280.89850.33080.1182A(:,:,2)=0.98840.70690.54000.9995>>A(3,:,2)=[34]A(:,:,1)=0.66280.89850.33080.11821.00002.0000A(:,:,2)=0.98840.70690.54000.99953.00004.0000>>A=rand(3,2,2)A(:,:,1)=0.81470.91340.90580.63240.12700.0975A(:,:,2)=0.27850.96490.54690.15760.95750.9706>>A(:,3,1)=[4;5;6]A(:,:,1)=0.81470.91344.00000.90580.63245.00000.12700.09756.0000A(:,:,2)=0.27850.96491.00000.54690.15762.00000.95750.97063.0000>>A=rand(2,2,2)A(:,:,1)=0.95720.80030.48540.1419A(:,:,2)=0.42180.79220.91570.9595>>A(:,:,3)=rand(2)A(:,:,1)=0.95720.80030.48540.1419A(:,:,2)=0.42180.79220.91570.9595A(:,:,3)=0.65570.84910.03570.9340>>A=rand(2,2,2)A(:,:,1)=0.66280.89850.33080.1182A(:,:,2)=0.98840.70690.54000.9995>>A(3,:,2)=[34]A(:,:,1)=0.66280.89850.33080.11821.00002.0000A(:,:,2)=0.98840.70690.54000.99953.00004.0000多维数组裁剪与合并。数组裁剪是指从原数组中提取一部分元素,以生成一个维度更小的新数组,其方法为:先将各方向需提取元素的位置构成一个索引向量,再采用一个或多个索引向量实施原数组对应位置的元素的提取。>>A=rand(5,4,3);>>B=A([1245],:,:)B(:,:,1)=0.08550.73030.96310.62410.26250.48860.54680.67910.02920.23730.23160.36740.92890.45880.48890.9880B(:,:,2)=0.03770.26190.10680.90370.88520.33540.65380.89090.79620.13660.77910.69870.09870.72120.71500.1978B(:,:,3)=0.03050.60990.18290.16790.74410.61770.23990.97870.47990.80550.02870.50050.90470.57670.48990.4711>>C=A(:,1:2:end,:)C(:,:,1)=0.08550.96310.26250.54680.80100.52110.02920.23160.92890.4889C(:,:,2)=0.03770.10680.88520.65380.91330.49420.79620.77910.09870.7150C(:,:,3)=0.03050.18290.74410.23990.50000.88650.47990.02870.90470.4899>>D=A(:,:,[12])D(:,:,1)=0.08550.73030.96310.62410.26250.48860.54680.67910.80100.57850.52110.39550.02920.23730.23160.36740.92890.45880.48890.9880D(:,:,2)=0.03770.26190.10680.90370.88520.33540.65380.89090.91330.67970.49420.33420.79620.13660.77910.69870.09870.72120.71500.1978>>E=A(1:2:end,:,2)E=0.03770.26190.10680.90370.91330.67970.49420.33420.09870.72120.71500.1978>>F=A([14],[13],:)F(:,:,1)=0.08550.96310.02920.2316F(:,:,2)=0.03770.10680.79620.7791F(:,:,3)=0.03050.18290.47990.0287>>G=A([14],[134],[12])G(:,:,1)=0.08550.96310.62410.02920.23160.3674G(:,:,2)=0.03770.10680.90370.79620.77910.6987数组合并是指将现有两个或两个以上数组按照指定的连接方式,组合成一个新数组。其方法为:将多个数组采用空格或逗号按行方向相连合并为一个新数组,或将多个数组采用分号按列方向相连合并为一个新数组。多维数组裁剪与合并。数组裁剪是指从原数组中提取一部分元素,以生成一个维度更小的新数组,其方法为:先将各方向需提取元素的位置构成一个索引向量,再采用一个或多个索引向量实施原数组对应位置的元素的提取。>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=0.97300.45380.08350.64900.43240.13320.80030.82530.1734B(:,:,2)=0.39090.06050.41680.83140.39930.65690.80340.52690.6280>>C=[AB]C(:,:,1)=1.00001.00001.00000.33950.05270.42281.00001.00001.00000.95160.73790.54791.00001.00001.00000.92030.26910.9427C(:,:,2)=1.00001.00001.00000.41770.70110.69811.00001.00001.00000.98310.66630.66651.00001.00001.00000.30150.53910.1781>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=0.97300.45380.08350.64900.43240.13320.80030.82530.1734B(:,:,2)=0.39090.06050.41680.83140.39930.65690.80340.52690.6280>>D=[A;B]D(:,:,1)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.33950.05270.42280.95160.73790.54790.92030.26910.9427D(:,:,2)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.41770.70110.69810.98310.66630.66650.30150.53910.1781多维数组裁剪与合并。数组裁剪是指从原数组中提取一部分元素,以生成一个维度更小的新数组,其方法为:先将需提取元素的位置构成一个索引向量,或行与列都构成一个索引向量,再采用一个索引向量或一对索引向量实施原矩阵对应位置的元素的提取。矩阵合并是指将现有两个或两个以上矩阵按照指定的连接方式,组合成一个新矩阵。其方法为:将多个矩阵采用空格或逗号按行即水平方向相连合并为一个新矩阵,或将多个矩阵采用分号按列即垂直方向相连合并为一个新矩阵。MATLAB还可采用函数cat、horzcat和vertcat实现两个或两个以上的数组的合并。具体方法为:列方向合并数组可采用cat(1,A,B,C,...)或vertcat(A,BC,...),而行方向合并数组则采用cat(2,A,B,C,...)或horzcat(A,B,C,...)。页方向合并数组则采用cat(3,A,B,C,...)。>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=
0.33950.05270.4228
0.95160.73790.5479
0.92030.26910.9427B(:,:,2)=
0.41770.70110.6981
0.98310.66630.6665
0.30150.53910.1781>>C
=
cat(2,A,
B)C(:,:,1)=1.00001.00001.00000.33950.05270.42281.00001.00001.00000.95160.73790.54791.00001.00001.00000.92030.26910.9427C(:,:,2)=1.00001.00001.00000.41770.70110.69811.00001.00001.00000.98310.66630.66651.00001.00001.00000.30150.53910.1781>>D
=
horzcat(A,B)D(:,:,1)=1.00001.00001.00000.33950.05270.42281.00001.00001.00000.95160.73790.54791.00001.00001.00000.92030.26910.9427D(:,:,2)=1.00001.00001.00000.41770.70110.69811.00001.00001.00000.98310.66630.66651.00001.00001.00000.30150.53910.1781>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=
0.33950.05270.4228
0.95160.73790.5479
0.92030.26910.9427B(:,:,2)=
0.41770.70110.6981
0.98310.66630.6665
0.30150.53910.1781>>E=cat(1,
A,
B)E(:,:,1)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.33950.05270.42280.95160.73790.54790.92030.26910.9427E(:,:,2)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.41770.70110.69810.98310.66630.66650.30150.53910.1781>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=
0.33950.05270.4228
0.95160.73790.5479
0.92030.26910.9427B(:,:,2)=
0.41770.70110.6981
0.98310.66630.6665
0.30150.53910.1781>>F=
vertcat(A,
B)F(:,:,1)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.33950.05270.42280.95160.73790.54790.92030.26910.9427F(:,:,2)=1.00001.00001.00001.00001.00001.00001.00001.00001.00000.41770.70110.69810.98310.66630.66650.30150.53910.1781>>A=ones(3,3,2),B=rand(3,3,2)A(:,:,1)=111111111A(:,:,2)=111111111B(:,:,1)=
0.33950.05270.4228
0.95160.73790.5479
0.92030.26910.9427B(:,:,2)=
0.41770.70110.6981
0.98310.66630.6665
0.30150.53910.1781>>G=
cat(3,A,
B)G(:,:,1)=111111111G(:,:,2)=111111111G(:,:,3)=0.33950.05270.4228
0.95160.73790.5479
0.92030.26910.9427G(:,:,4)=0.41770.70110.6981
0.98310.66630.6665
0.30150.53910.1781多维数组查找与排序。数组查找是指确定数组中满足某些条件的元素及其索引。MATLAB中,数组查找只有函数find,其功能是查找数组的非零元素并返回其索引。因此,采用函数find实施数组查找时,常需借助关系和逻辑等运算,首先对原数组实施关系运算或逻辑运算甚至两者的结合而生成一个只包含1和0两种元素的逻辑数组,其次利用函数find返回元素1在逻辑数组的索引,该索引也是原数组中满足条件的元素的索引,最后利用索引对原数组寻址而确定原数组中满足条件的元素。特别注意,函数find查找非零元在新数组的索引时,返回结果是元素1在新数组中的次序构成的一个列向量,即数组采用单下标法表示为中的,其中构成一个列向量。为了获得三下标法表示为中的,利用先计算,再利用和计算。>>A(:,:,1)=magic(3);>>A(:,:,2)=pascal(3)A(:,:,1)=816357492A(:,:,2)=111123136>>GR=(A>2)3×3×2logical
数组GR(:,:,1)=101111110GR(:,:,2)=000001011>>LR=(A<6)3×3×2logical
数组LR(:,:,1)=010110101LR(:,:,2)=111111110>>GLR=(GR&LR)3×3×2logical
数组ans=34533>>[m,n,s]=size(A);>>k=fix((q-1)/(m*n))+1;>>h=m*n*(k-1);>>j=fix(((q-1)-h)/m)+1;>>i=rem((q-1)-h,m)+1;>>[i,j,k]ans=211311221322232GLR(:,:,1)=000110100GLR(:,:,2)=000001010>>q=find(GLR)q=2351517>>A(q)多维数组查找与排序。多维数组排序是指对数组的元素按照指定方向实施升序或降序的方式排列。可采用函数sort,其功能返回排序后的数组及其元素在原数组中的索引。给定数组A,采用函数sort实施数组排序的具体调用格式为:(1)B=sort(A),数组A按第一方向实施升序排列,并将排序后数组赋值给变量B;(2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论