任务一
您可以使用行、列索引从数组中提取值。
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
的第八个元素。
您也可以使用变量作为索引。试着创建一个变量 y
,并用 y
作为 data
的索引
y = data(2,4)
提取多个元素
任务一
用作索引时,冒号运算符 (:
) 可指代该维度中的所有元素。以下语法
x = A(2,:)
会创建一个包含 A
中第 2 行上所有元素的行向量。
任务
创建一个名为 density
的变量,其中包含名为 data
的矩阵中第 2 列上的所有元素。
density = data(:,2)
任务二
冒号运算符可以引用某个值范围。以下语法会创建一个包含矩阵 A
的第 1 行、第 2 行和第 3 行所有元素的矩阵。
x = A(1:3,:)
创建一个名为 volumes
的变量,其中包含 data
的最后两列的所有元素。
volumes = data(:,3:4)
任务三
单个索引值可用于引用向量元素。例如
x = v(3)
会返回向量 v
的第 3 个元素(当 v
为行向量或列向量时)。
任务
使用单个索引值创建一个名为 p
并且包含向量 density
中的第 6 个元素的变量
p = density(6)
任务4
单个索引值范围可用于引用向量元素的子集。例如
x = v(3:end)
返回向量 v
的一个子集,其中包含从第三个到最后一个元素范围内的所有元素。
任务
使用索引值范围创建一个名为 p
的向量,其中包含从 density
的第 2 个到第 5 个元素范围内的所有元素。
p = density(2:5)
附加练习
索引可以是非连续数字。试着提取 density
的第一个、第三个和第六个元素。
p = density(1),density(3),density(6)
更改数组中的值
任务一
记住您可以使用 :
字符来提取整列数据。
创建一个名为 v2
并且包含 data
的最后一列元素的向量
v2 = data(:,end)
任务二
可以结合使用索引和赋值来修改变量的元素。A(2) = 11
将 v2
中的第一个元素从 NaN
更改为 0.5
v2(1) = 0.5
任务三
任务
将 data
的第一行和最后一列中元素的值更改为 0.5
。
data(1,4) = 0.5
附加练习
您可以结合使用索引与赋值,将数组值更改为与其他元素相等。例如,以下代码将 x(1)
的值更改为 x(2)
的值:
x(1) = x(2)
尝试将 data
的第一列更改为 data
的第二列。
data(:,1) = data(:,2)