主要内容

数组索引

在MATLAB®中,有三个主要的方法来访问数组元素数组中基于其位置(索引)。这些方法由位置索引,线性索引,索引和逻辑。

索引的元素的位置

最常见的方式是显式地指定元素的指标。例如,访问矩阵的一个元素,指定行号元素的列号。

= (1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
一个=4×41 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
e = (2)
e = 10

e是3的元素2位置(第三行第二列)的一个

你也可以参考多个元素一次通过指定的指标向量。例如,访问第一个和第三个元素的第二行一个

r = (2, 1 [3])
r =1×25 7

来访问元素的行或列,使用结肠。例如,访问元素在第一个通过第三行第二第四列一个

2:4 r = (1:3)
r =3×32 3 4 6 7 8 10 11 12

另一种计算方法r是使用关键字结束通过最后一列指定第二列。这种方法允许您指定最后一列不知道到底有多少列一个

r =(1:3, 2:结束)
r =3×32 3 4 6 7 8 10 11 12

如果你想访问所有的行或列,使用冒号运算符本身。例如,返回的整个第三列一个

r = (: 3)
r =4×13 7 11日15

一般来说,您可以使用索引来访问数组元素的MATLAB无论其数据类型或维度。例如,直接访问的列datetime数组中。

t = [datetime(2018年,1:5,1);datetime(2019年,1:5,1))
t =2 x5 datetime01 - 1月- 2018年1 - 3月- 2018年2月- 2018年01 - 01 - 4月- 2018年1 - 5月- 2018年01 - 1月- 2019年01 - 3月- 2019年2月- 2019年01 - 01 - 4月- 2019年01 - 2019
3 = t (: 3)
3 =2 x1 datetime01 - 3月- 2018年1 - 3月- 2019

对高维数组,扩大语法匹配数组维度。考虑随机3-by-3-by-3数字数组。访问该元素在第二行,第三列,第一个表的数组。

一个=兰德(3,3,3);e = (2、3、1)
e = 0.5469

使用多维数组的更多信息,请参阅多维数组

索引与单个索引

另一种方法来访问数组中的元素是只使用一个索引,无论大小或数组的维度。这种方法被称为线性索引。而MATLAB显示数组定义根据其大小和形状,它们实际上是存储在内存中单个列的元素。可视化的一个好方法这一概念是一个矩阵。而以下数组显示为3 x3的矩阵,MATLAB将其存储为一个单一的列的列组成一个附加一个接一个。存储向量包含元素的序列12,45,33,36,29日,25,91年,48,11,可以显示使用一个冒号。

一个= [12 36 91;45 29 48;33 25 11]
一个=3×312 36 91 45 29 48 33 25 11
Alinear = A (:)
Alinear =9×112 45 33 36 29 25 91 48 11

例如,3、2的元素一个25使用的语法,你可以访问它(2)。您还可以访问该元素使用语法(6),因为25的第六个元素存储向量序列。

e = (2)
e = 25
elinear = (6)
elinear = 25

而线性索引可以比较直观的视觉效果,它可以为执行某些强大的计算不依赖于数组的大小或形状。例如,您可以很容易地和所有的元素一个不需要提供第二个参数总和函数。

s =总和((:))
s = 330

sub2indind2sub功能有助于在原始数组索引及其线性版本之间进行转换。例如,计算的线性指数3 2的元素一个

linearidx = sub2ind(大小(A), 3、2)
linearidx = 6

从线性指数转换回它的行和列的形式。

(行,坳)= ind2sub(大小(A), 6)
行= 3
坳= 2

逻辑值的索引

使用真与假逻辑指标是另一个有用的方法来索引数组,尤其当使用条件语句。例如,假设你想知道如果一个矩阵的元素一个不到相应的另一个矩阵的元素吗B。小于操作符返回一个逻辑数组的元素1当一个元素一个小于相应的元素B

一个= [1 2 6;4 3 6]
一个=2×31 2 6 4 3 6
B = [0 3 7;3 7 5]
B =2×30 3 7 3 7 5
印第安纳州= < B
印第安纳州=2 x3逻辑阵列0 1 1 0 1 0

现在你知道满足条件的元素的位置,您可以检查单个值使用印第安纳州索引数组。MATLAB匹配的值1的位置印第安纳州对应的元素一个B在一个列向量,列出他们的值。

保兑=(印第安纳州)
保兑=3×12 3 6
Bvals = B(印第安纳州)
Bvals =3×13 7 7

MATLAB”是“函数也返回逻辑阵列显示哪些元素输入满足一定的条件。例如,检查哪些元素字符串向量是失踪的使用ismissing函数。

str = [“一个”“B”失踪“D”“E”失踪);印第安纳州= ismissing (str)
印第安纳州=1 x6逻辑阵列0 0 1 0 0 1

假设你想找到的元素的值失踪。使用~运营商与索引向量印第安纳州来做到这一点。

strvals = str(~印第安纳州)
strvals =1 x4字符串“A”“B”“D”“E”

更多的例子使用逻辑索引,见找到满足条件的元素数组

相关的话题