MATLAB中所有数据类型的所有变量都是多维数组,向量是一维数组,矩阵是二维数组。
我们已经讨论了向量和矩阵,在本章中,我们将讨论多维数组,然而,在此之前,让我们讨论一些特殊类型的数组。
在本节中,我们将讨论一些创建一些特殊数组的函数,对于所有这些函数,单个参数创建正方形数组,双参数创建矩形数组。
zeros() - 函数创建全零数组
zeros(5)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Oones() - 函数创建一个包含所有One-的数组
ones(4,3)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans = 1 1 1 1 1 1 1 1 1 1 1 1
eye() - 函数创建一个单位矩阵。
eye(4)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
rand() - 函数在(0,1)上创建均匀分布的随机数组
rand(3, 5)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans = 0.8147 0.9134 0.2785 0.9649 0.9572 0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003
A magic square是一个方块,当其元素按行、列或对角线相加时,它会产生相同的和,它需要一个单数参数,给出正方形的大小,参数必须是大于或等于3。
magic(4)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
在MATLAB中,具有两个以上维度的数组称为多维数组,MATLAB中的多维数组是普通二维矩阵的扩展。
通常,为了生成多维数组,我们首先创建一个二维数组并对其进行扩展。
例如,让我们创建一个二维数组a。
a=[7 9 5; 6 1 9; 4 3 2]
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
a = 7 9 5 6 1 9 4 3 2
数组a是一个3乘3数组,我们可以通过提供类似的值,向a添加第三维
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
我们还可以使用ones()、zeros()或rand()函数创建多维数组。
b=rand(4,3,2)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
b(:,:,1) = 0.0344 0.7952 0.6463 0.4387 0.1869 0.7094 0.3816 0.4898 0.7547 0.7655 0.4456 0.2760 b(:,:,2) = 0.6797 0.4984 0.2238 0.6551 0.9597 0.7513 0.1626 0.3404 0.2551 0.1190 0.5853 0.5060
我们还可以使用cat()函数来构建多维数组,它沿着指定的维度-连接数组列表
cat() - 函数的语法是-
B=cat(dim, A1, A2...)
B是创建的新数组
A1,A2,.是否要连接数组
dim是连接数组所依据的维度
创建一个脚本文件,并在其中键入以下代码-
a=[9 8 7; 6 5 4; 3 2 1]; b=[1 2 3; 4 5 6; 7 8 9]; c=cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
运行文件时,它会显示-
c(:,:,1) = 9 8 7 6 5 4 3 2 1 c(:,:,2) = 1 2 3 4 5 6 7 8 9 c(:,:,3) = 2 3 1 4 7 8 3 9 0
MATLAB提供了以下函数来排序、旋转、置换、重塑或移位数组内容。
Function | Purpose |
---|---|
length | 向量的长度或最大数组尺寸 |
ndims | 数组尺寸数 |
numel | 数组元素数 |
size | 数组大小 |
iscolumn | 判断输入是否为列向量 |
isempty | 判断数组是否为空 |
ismatrix | 判断输入是否为矩阵 |
isrow | 判断输入是否为行向量 |
isscalar | 判断输入是否为标量 |
isvector | 判断输入是否为向量 |
blkdiag | 根据输入参数构造块对角矩阵 |
circshift | 循环移位数组 |
ctranspose | 复共轭转置 |
diag | 对角矩阵和矩阵的对角线 |
flipdim | 沿指定尺寸翻转数组 |
fliplr | 从左到右翻转矩阵 |
flipud | 上下翻转矩阵 |
ipermute | 反转N-D数组的置换尺寸 |
permute | 重新排列N-D数组的尺寸 |
repmat | 复制和切片数组 |
reshape | 重塑数组 |
rot90 | 将矩阵旋转90度 |
shiftdim | 移位尺寸 |
issorted | 判断集合元素是否按排序顺序 |
sort | 按升序或降序对数组元素进行排序 |
sortrows | 按升序对行进行排序 |
squeeze | 删除单例尺寸 |
transpose | 转置 |
vectorize | 向量化表达 |
以下示例说明了上面提到的一些函数。元素的length、ndims和numel,创建一个脚本文件,并在其中键入以下代码-
x=[7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % length of x vector y=rand(3, 4, 5, 2); ndims(y) % no of dimensions in array y s=['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % no of elements in s
运行文件时,它将显示以下结果-
ans= 8 ans= 4 ans= 23
创建一个脚本文件,并在其中键入以下代码-
a=[1 2 3; 4 5 6; 7 8 9] % the original array a b=circshift(a,1) % circular shift first dimension values down by 1. c=circshift(a,[1 -1]) % circular shift first dimension values % down by 1 % and second dimension values to the left % by 1.
运行文件时,它将显示以下结果-
a = 1 2 3 4 5 6 7 8 9 b = 7 8 9 1 2 3 4 5 6 c = 8 9 7 2 3 1 5 6 4
创建一个脚本文件,并在其中键入以下代码-
v=[ 23 45 12 9 5 0 19 17] % horizontal vector sort(v) % sorting v m=[2 6 4; 5 3 9; 2 0 1] % two dimensional array sort(m, 1) % sorting m along the row sort(m, 2) % sorting m along the column
运行文件时,它将显示以下结果-
v = 23 45 12 9 5 0 19 17 ans = 0 5 9 12 17 19 23 45 m = 2 6 4 5 3 9 2 0 1 ans = 2 0 1 2 3 4 5 6 9 ans = 2 4 6 3 5 9 0 1 2
单元格数组是索引单元格的数组,其中每个单元格可以存储不同维度和数据类型的数组。
单元函数用于创建单元数组,单元格函数的语法为-
C=cell(dim) C=cell(dim1,...,dimN) D=cell(obj)
C是单元数组;
dim是指定单元数组C的维数的标量整数或整数向量;
dim1,.,dimN是指定C的维数的标量整数;
obj是以下类型
创建一个脚本文件,并在其中键入以下代码-
c=cell(2, 5); c={'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
运行文件时,它将显示以下结果-
c= { [1,1]=Red [2,1]= 1 [1,2]=Blue [2,2]= 2 [1,3]=Green [2,3]= 3 [1,4]=Yellow [2,4]= 4 [1,5]=White [2,5]= 5 }
有两种方法可以引用单元数组的元素
c={'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2)
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans= { [1,1]=Red [2,1]= 1 [1,2]=Blue [2,2]= 2 }
您还可以通过使用花括号索引来访问单元格的内容。
c={'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4}
matlab将执行上述语句并返回以下结果-
链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-arrays.html
来源:LearnFk无涯教程网
ans=Blue ans=Green ans=Yellow
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕