莎拉•Zaranek MathWorks
创建和操作MATLAB®数组,包括使用索引访问元素。
MATLAB将所有类型的数据存储在数组中。这不仅包括数值数据,还包括其他类型的数据,如字符串甚至复杂对象。所以使用数组是使用MATLAB的基础。使用MATLAB语言,您可以创建数组,使用许多索引方法访问数组元素并为其赋值,还可以执行许多其他操作来操作数组的内容。
让我们先来看看如何创建数组。您可以通过使用方括号和逗号或空格指定特定的值来创建数组,以分隔行中的列,如a = 1、2、3、4,并使用分号分隔行。您可以使用列操作符创建等间距的一维数组,比如a = 1到10,a = 1到10,或者a = 10到1,或者a = - 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现在短了两行。
有时,将二维数组作为一维数组来处理是很方便的,就好像所有的列都被堆成一个单独的列并指定一个索引。这叫做线性索引。例如,可以通过一个线性索引5访问第1行第2列的元素。
这是可能的,因为MATLAB数组是按列存储在内存中的。换句话说,数组中的每一列都是一个接一个地存储的。所以第一行第二列的元素,实际上是存储的第五个元素。在使用线性索引时,冒号运算符自己指定所有元素,并返回包含整个数组内容的单个列向量。
您还可以使用所谓的逻辑索引来访问元素,在逻辑索引中,您可以指定一个大小相等的索引数组,其中填充了真值或假值,就像一个掩码一样。这对于那些值匹配某些条件(如A小于0.5)的元素非常有用,这将创建一个与A大小相同的逻辑值数组,当A小于0.5时,这里显示的真值为1。注意逻辑值true和false分别显示为1和0。
我们可以使用这样的逻辑数组来执行逻辑索引,比如在A小于0.5到- 1之间设置A的元素。要查找与您的条件匹配的数组元素的索引,请使用find函数,该函数将查找非零值和逻辑表达式。这给出了满足条件A小于0。5的元素的线性指标。你可以得到行和列的下标。您可以在文档中看到关于所有索引技术的信息。
最后,让我们看看如何提取有关数组的一些有用信息并执行一些基本操作。您可以获得一个数组的基本信息,比如确定它是否为空、获取所有维的长度(通常用于一维数组)或元素的总数。正如我们前面看到的,使用方括号创建数组使我们可以水平或垂直地将许多数组连接在一起。其他有用的数组操作函数包括左右翻转、上下翻转、复制矩阵的repmat、整形和排序。
虽然这里展示的示例使用一维和二维数组,但是这些技术中的大多数也可以应用于多维数组。有关更多信息,请参见文档。演示到此结束。现在在MATLAB中尝试这些特性,或者观看其他视频。