在MATLAB®,存在于阵列中访问基于其位置(索引)的数组元素三个主要的方法。这些方法是通过位置,线性索引和逻辑索引索引。
最常见的方式是明确指定元素的索引。例如,为了访问矩阵的单个元素,指定行数,随后通过将元件的列数。
a = [1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
A =4×4.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
e = a(3,2)
E = 10.
E.
是在3,2位置的元件(第三行,第二列)A.
。
您也可以通过指定在向量中的索引来引用多个元素。例如,访问第二行的第一个和第三个元素A.
。
R = A(2,[1-3])
r =1×25 7
要访问一系列行或列中的元素,请使用冒号
。例如,通过第四列访问到第三行和第二在第一元件A.
。
r = a(1:3,2:4)
r =3×32 3 4 6 7 8 10 11 12
另一种方法来计算R.
就是使用关键字结束
通过最后一列指定的第二列。这种方法可以让你在不知道多少列究竟如何在指定的最后一列A.
。
r = a(1:3,2:结束)
r =3×32 3 4 6 7 8 10 11 12
如果您要访问所有的行或列中,通过自身使用冒号运算符。例如,返回的整个第三列A.
。
r = a(:,3)
r =4×13 7 11 15
一般来说,可以使用索引,以在MATLAB不管其数据类型或尺寸的任何阵列的存取元件。例如,直接访问的列DateTime.
阵列。
T = [日期时间(2018,1:5,1);日期时间(2019,1:5,1)]
t =2×日期时间01-JAN-2018 01-FEB-2018 01-MAR-2018 01-APR-2018 01-月 - 2018年1月1 2019 01-FEB-2019 01-MAR-2019 01-APR-2019 01-月-2019
march1 = T(:,3)
march1 =2×1日期时间2018 01-Mar-2018 01-Mar-2019
对于更高维阵列,展开的语法以匹配阵列尺寸。考虑一个随机3×3×3数值数组。在第二行,第三列中,并且该阵列的第一片材在访问的元素。
a = rand(3,3,3);e = a(2,3,1)
E = 0.5469
有关使用多维数组的更多信息,请参阅多维数组。
用于访问阵列的元件的另一种方法是仅使用一个单一的指数,无论大小或数组的维。这种方法被称为线性索引。尽管根据其定义的尺寸和形状MATLAB显示器阵列,它们实际上是存储在存储器中作为元件的单个列。一个好的方法来可视化这个概念是一个矩阵。尽管下面的阵列被显示为3×3矩阵,MATLAB将其存储为一个单一的柱制成的列的向上A.
追随另一个。存储的矢量包含元素序列12.
那45.
那33.
那36.
那29.
那25.
那91.
那48.
那11.
,并且可以使用单个冒号来显示。
A = [12 36 91;45 29 48;33 25 11]
A =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元件A.
是25.
,你可以使用语法访问a(3,2)
。您还可以使用语法访问此元素A(6)
,自从25.
是存储的矢量序列的第六个元素。
e = a(3,2)
E = 25.
Elinear = A(6)
elinear = 25
虽然线性索引可以是不太直观视觉,它可以是强大的用于执行某些计算不依赖于阵列的大小或形状。例如,您可以轻松地总结所有的元素A.
不必向第二个论点提供第二个论点sum
功能。
s = sum(a(:))
S = 330
当sub2ind
和ind2sub
功能有助于原始数组索引和它们的线性版本之间的转换。例如,计算的3,2元件的线性指数A.
。
linearidx = sub2ind(尺寸(A),3,2)
linearidx = 6
从线性索引转换回其行和列表单。
[行,列] = ind2sub(尺寸(A),6)
行= 3.
山口= 2
使用True和False逻辑指示器是索引到数组中的另一种有用的方法,特别是在使用条件语句时。例如,假设您想知道矩阵的元素是否存在A.
小于另一矩阵的相应元素B.
。在低于操作者返回一个逻辑数组,其元素是1
当在一个元件A.
比在相应的元件小B.
。
A = [1 2 6;4 3 6]
A =2×31 2 6 4 3 6
B = [0 3 7;3 7 5]
B =2×30 3 7 3 7 5
IND = A
IND =2×3阵列的逻辑0 1 1 0 1 0
既然你知道遇到条件的元素的位置,你可以使用检查个别值Ind.
作为索引数组。Matlab与价值1的位置相匹配Ind.
到相应的元素A.
和B.
,并列出列在列向量中的值。
Avals = A(IND)
Avals =.3×12 3 6
Bvals = B(IND)
BVALS =3×13 7 7.
MATLAB“是”功能也返回指示某一条件的输入满足的哪些元素的逻辑阵列。例如,检查一个的哪些元素串
向量所使用的缺失ISMISSING
功能。
str = [“a”“b”失踪“d”“E”缺少];Ind = Ismissing(str)
IND =1x6逻辑阵列0 0 1 0 0 1
假设您想找到元素的值不是缺少。用来〜
操作员与索引矢量Ind.
这样做。
strvals = str(~den)
strvals =1x4字符串“”B“”D“”E“
有关使用逻辑索引的更多示例,请参阅查找符合条件的数组元素。