4.1 对数组进行索引
4.2 提取多个元素
4.3 更改数组中的值
索引:引用数组中的元素。您可以通过索引来提取和修改数组中的值,值在数组中的位置被称为它的索引。您可以使用索引提取特定值。
例如您需要向量x的第三个元素,请键入x(3)。如果您知道元素的位置,也可以更改值,此处我们将第三个索引处的值更改为1,键入x(3)=1。您还可以提取某一范围内的值,方法是使用冒号以及该范围的第一个和最后一个索引,如键入x(2:4)。
如果您要从矩阵中提取元素,请改为指定两个索引,第一个索引是行,第二个索引是列,如键入x(1,3)。一种相当常见的场景,您要提取矩阵中的整行或整列,当您单独使用冒号作为索引时,它表示全部,如全部行或全部列。如提取第一行的全部列,键入x(1,:)。提取第三列的全部行,键入x(:,3)。矩阵索引的形式为(行,列),x(row,col);而向量只需要一个索引值,x(idx)。
对数组进行索引
您可以使用行、列索引从数组中提取值。
y = A(5,7)
此语法将会提取 A 的第 5 行第 7 列的值,然后将结果赋给变量 y。
创建一个名为 x 的变量,其值为变量 data 中位于第 6 行第 3 列的值。
x=data(6,3)
您可以使用 MATLAB 关键字 end 作为行或列索引来引用最后一个元素。
y = A(end,2)
使用 end 关键字获取变量 data 的最后一行第三列的值。将该值赋给一个名为 x 的变量。
x=data(end,3)
请注意,您可以将算术运算与关键字 end 结合使用。例如:
y = A(end-1,end-2)
创建标量变量 x,其值为 data 的倒数第二 (end-1) 行第三列的值。
x=data(end-1,3)
如果只对一个矩阵使用一种索引,它将按顺序从上到下遍历每列。试着用一种索引提取 data 的第八个元素。
m=data(8)
您也可以使用变量作为索引。试着创建一个变量 y,并用 y 作为 data 的索引。
y=4
n=data(y)
提取多个元素
用作索引时,冒号运算符 (:) 可指代该维度中的所有元素。以下语法
x = A(2,:)
会创建一个包含 A 中第 2 行上所有元素的行向量。
创建一个名为 density 的变量,其中包含名为 data 的矩阵中第 2 列上的所有元素。
density=data(:,2)
冒号运算符可以引用某个值范围。以下语法会创建一个包含矩阵 A 的第 1 行、第 2 行和第 3 行所有元素的矩阵。
x = A(1:3,:)
创建一个名为 volumes 的变量,其中包含 data 的最后两列的所有元素。
volumes=data(:,end-1:end)
单个索引值可用于引用向量元素。例如
x = v(3)
会返回向量 v 的第 3 个元素(当 v 为行向量或列向量时)。
使用单个索引值创建一个名为 p 并且包含向量 density 中的第 6 个元素的变量。
p=density(6)
单个索引值范围可用于引用向量元素的子集。例如
x = v(3:end)
返回向量 v 的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。
使用索引值范围创建一个名为 p 的向量,其中包含从 density 的第 2 个到第 5 个元素范围内的所有元素。
p=density(2:5)
索引可以是非连续数字。试着提取 density 的第一个、第三个和第六个元素。
m=[1 3 6]
p=density(m)
更改数组中的值
记住您可以使用 : 字符来提取整列数据。
创建一个名为 v2 并且包含 data 的最后一列元素的向量。
v2=data(:,end)
可以结合使用索引和赋值来修改变量的元素。
A(2) = 11
将 v2 中的第一个元素从 NaN 更改为 0.5。
v2(1)=0.5
将 data 的第一行和最后一列中元素的值更改为 0.5。
data(1,end)=0.5
您可以结合使用索引与赋值,将数组值更改为与其他元素相等。例如,以下代码将 x(1) 的值更改为 x(2) 的值:
x(1) = x(2)
尝试将 data 的第一列更改为 data 的第二列。
data(:,1)=data(:,2)
学习来源:Matlab官方教学网站《MATLAB 入门之旅》,链接如下: