MATLAB 数组
在MATLAB中,所有数据类型的变量均为多维数组。向量是一维数组,矩阵是二维数组。
我们已经讨论了向量和矩阵。在本章中,我们将讨论多维数组。不过在此之前,让我们先讨论一些特殊类型的数组。
MATLAB中的特殊数组
在本节中,我们将讨论一些创建特殊数组的函数。对于所有这些函数,一个参数创建正方形数组,两个参数创建矩形数组。
zeros() 函数创建一个全为零的数组 –
例如 –
Matlab将执行上述语句,并返回以下结果−
ones()函数创建一个由全部是1的数组 –
例如 –
MATLAB将执行上述语句并返回以下结果−
eye()函数创建一个单位矩阵。
例如 –
MATLAB将执行上述语句并返回以下结果 –
rand()函数创建了一个在(0,1)上均匀分布的随机数数组−
例如:−
MATLAB将执行上述语句并返回以下结果 –
一个魔方阵
魔方阵 是一个方形数组,当它的元素按行求和、按列求和或按对角线求和时,会产生相同的结果。
magic() 函数创建一个魔方阵数组。它接受一个参数来确定方阵的大小。该参数必须是大于等于3的标量值。
MATLAB将执行以上语句,并返回以下结果−
多维数组
在MATLAB中,超过两个维度的数组被称为多维数组。MATLAB中的多维数组是普通二维矩阵的扩展。
通常,要生成一个多维数组,我们首先创建一个二维数组并进行扩展。
例如,让我们创建一个二维数组a。
MATLAB将执行上述语句并返回以下结果−
数组 a
是一个3行3列的数组;我们可以通过提供如下的值给 a
来添加第三维度:
Matlab将执行上述语句并返回以下结果 –
我们也可以使用ones()、zeros()或rand()函数创建多维数组。
例如:
MATLAB将执行上述语句并返回以下结果 –
我们还可以使用 cat() 函数构建多维数组。它沿指定维度连接数组列表。
cat() 函数的语法是:
在下面,
- B 是创建的新数组
-
A1,A2,… 是要连接的数组
-
dim 是要连接数组的维度
示例
创建一个脚本文件,然后将以下代码键入其中 –
当你运行这个文件时,它显示的是 –
数组函数
MATLAB提供了以下函数来对数组内容进行排序、旋转、排列、重塑或移位。
功能 | 目的 |
---|---|
length | 向量的长度或最大的数组维度 |
ndims | 数组的维度数 |
numel | 数组的元素个数 |
size | 数组的维度 |
iscolumn | 确定输入是否为列向量 |
isempty | 确定数组是否为空 |
ismatrix | 确定输入是否为矩阵 |
isrow | 确定输入是否为行向量 |
isscalar | 确定输入是否为标量 |
isvector | 确定输入是否为向量 |
blkdiag | 从输入参数构建块对角矩阵 |
circshift | 循环地移动数组 |
ctranspose | 复共轭转置 |
diag | 对角矩阵和矩阵的对角线元素 |
flipdim | 沿指定维度翻转数组 |
fliplr | 从左到右翻转矩阵 |
flipud | 从上到下翻转矩阵 |
ipermute | 逆置N维数组的维度排列 |
permute | 重新排列N维数组的维度 |
repmat | 复制并平铺数组 |
reshape | 重塑数组 |
rot90 | 将矩阵旋转90度 |
shiftdim | 移动维度 |
issorted | 确定集合元素是否按照排序顺序排列 |
sort | 将数组元素按照升序或降序排序 |
sortrows | 按照行的升序排序 |
squeeze | 移除单例维度 |
transpose | 转置 |
vectorize | 向量化表达式 |
示例
以下示例说明了上面提到的一些函数。
长度、维度和元素数量 –
创建一个脚本文件,然后输入以下代码:
当您运行文件时,它会显示如下结果-
循环移位数组元素 –
创建一个脚本文件,并输入以下代码 –
运行文件时,它会显示以下结果 –
排序数组
创建一个脚本文件,并将以下代码键入其中 –
当您运行该文件时,将显示以下结果 –
单元数组
单元数组是一种索引单元的数组,每个单元可以存储不同维度和数据类型的数组。
使用 cell 函数创建单元数组。cell函数的语法如下:
说明
- C是一个单元数组;
-
dim是一个标量整数或整数向量,用于指定单元数组C的维度;
-
dim1,…,dimN是标量整数,用于指定C的维度;
-
obj是以下之一 –
- Java数组或对象
- .NET类型为System.String或System.Object的数组
示例
创建一个脚本文件,然后输入以下代码 –
当您运行该文件时,它将显示以下结果 –
在单元数组中访问数据
有两种方式可以引用单元数组的元素 –
- 将索引括在第一个括号()中,引用一组单元格
- 将索引括在大括号{}中,引用单个单元格中的数据
当您将索引括在第一个括号中时,它引用一组单元格。
平滑括号中的单元数组索引是一组单元格。
例如 –
MATLAB将执行上述语句并返回以下结果 –
还可以通过花括号索引来访问单元格的内容。
例如 –
MATLAB将执行上述语句并返回以下结果−