埃尔希Eigerman, MathWorks
创建和操作MATLAB®数组,包括使用索引访问元素。
MATLAB将所有类型的数据存储在数组中。这不仅包括数值数据,还包括其他类型的数据,如字符串甚至复杂对象。所以使用数组是使用MATLAB的基础。使用MATLAB语言,您可以创建数组,使用许多索引方法访问数组元素并为数组元素赋值,以及执行许多其他操作来操作数组的内容。
让我们首先看看如何创建数组。您可以通过使用方括号和逗号或空格指定特定值来分隔行中的列,例如a等于1、2、3、4,并使用分号分隔行,来创建数组。您可以使用列操作符创建等间距的一维数组,例如a等于1到10,a等于1到10(步骤2),或a等于10到1(步骤- 2)。
linspace空间函数类似于冒号操作符,允许您指定开始和结束值,但可以控制点的数量,比如7。你可以用转置运算符把行变成列。您还可以调用许多函数来生成具有不同内容(如1、0或随机数)的初等矩阵。在变量编辑器中打开数组可以更方便地检查数组的内容。
现在让我们看看如何使用不同的索引形式访问和更改数组元素的值。可以通过简单的行和列索引指定数组的元素。这是A的元素在第一行第二列。
您可以指定访问数组部分的行和列的范围,例如第1行、第1列到第2列。元素不必是连续的,例如第1行、第1列和第3列。您可以使用冒号操作符指定所有行或列,在本例中指定所有列。您还可以使用end关键字,例如第1行、第2列到末尾或第2列到末尾减1。
您可以通过在等式左侧指定索引来为特定元素赋值,例如第1行、第2列到最后- 1等于10 10。您可以删除数组的一行或多行,例如行1到2,所有的列,通过将它们分配给用方括号表示的空矩阵。A现在短了两行。
有时,将这样的二维数组视为一维数组是很方便的,就好像所有列都堆叠在一起成为一个列,并指定单个索引。这叫做线性分度。例如,第1行第2列的元素可以通过一个线性索引5访问。
这是可能的,因为MATLAB数组是按列存储在内存中的。换句话说,数组中的每一列都是依次存储的。所以第1行第2列的元素实际上是存储的第5个元素。使用冒号操作符自己指定使用线性索引时的所有元素,它返回包含整个数组内容的单个列向量。
您还可以使用所谓的逻辑索引访问元素,在逻辑索引中指定一个大小相等的索引数组,其中填充了true或false值,就像掩码一样。这对于操作其值匹配某些条件(如A小于0.5)的元素非常有用,这将创建一个与A大小相同的逻辑值数组,当A小于0.5时,这里显示的真值为1。注意,像true和false这样的逻辑值分别显示为1和0。
我们可以使用这样的逻辑数组来执行逻辑索引,例如将A小于0.5的元素设置为- 1。要查找与您的条件匹配的数组元素的索引,请使用find函数,该函数将查找非零值和逻辑表达式。这给出了满足条件A小于0.5的元素的线性指数。您可以获取行和列的索引。您可以在文档中看到有关所有索引技术的信息。
最后,让我们看看如何提取有关数组的有用信息并执行一些基本操作。你可以得到一个数组的基本信息,比如确定它是否为空,得到数组的长度——通常用于1d数组——所有维度的大小,或者元素的总数。正如我们前面看到的,使用方括号创建数组可以让我们水平或垂直地将多个数组连接在一起。其他有用的数组操作函数包括左右翻转、上下翻转、repmat复制矩阵、重塑和排序。
尽管这里显示的示例使用一维和二维数组,但这些技术中的大多数也可以应用于多维数组。有关更多信息,请参阅文档。演示到此结束。现在在MATLAB中尝试这些特性或者观看其他视频。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。