✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:MATLAB 索引和修改数组
我们可以使用行、列索引从数组中提取值,如:
x = [1 2 3;4 5 6;7 8 9]
y = x(2,2)这样
y会得到x第2行第2列的值,即数值5,可以注意到 MATLAB 中的索引是从1开始的。我们可以使用 MATLAB 关键字
end作为行或列索引来引用最后一个元素:
x = [1 2 3;4 5 6;7 8 9]
y = x(2,end)
z = x(end,1)这里
y会得到x第2行最后一列的值,即数值6;z会得到x最后一行第1列的值,即数值7。
end关键字在这里数值上就等于当前维度的长度,可以参与算数运算:
x = [1 2 3;4 5 6;7 8 9]
y = x(end-1,end-2)这里
y会得到x倒数第2行倒数第3列的值,即数值4。如果我们在索引时只提供一个值,那它会被认为是行索引,列索引则默认是
1:
x = [1 2 3;4 5 6;7 8 9]
y = x(2)这里
y会得到x的第2行第1列的值,即数值4。
用作索引时,冒号运算符
:可指代该维度中的所有元素,如:
x = [1 2 3;4 5 6;7 8 9]
y = x(2,:)这里
y会得到x的第2行所有列的元素,即行向量[4 5 6]。冒号运算符还可以引用某个值范围,如:
x = [1 2 3;4 5 6;7 8 9]
y = x(1:3,2)这里
y会得到x的第1到3行第2列的元素,即列向量[2;5;8]。对于行向量或者列向量,我们可以只提供一个索引值,来索引它对应的元素:
x = [1 2 3 4 5]
y = x(3)
z = x(2:end)这里
y会得到x的第3个元素,即数值3;z会得到x的第2到 最后一个元素,即行向量[2 3 4 5]。索引也可以是非连续的数字,我们可以用一个向量来存储离散的索引值:
x = [1 2 3;4 5 6;7 8 9]
y = x([1 3],:)这里
y会得到x的第1和3行所有列的元素,即矩阵[1 2 3;7 8 9]。
上面两节我们已经学会了如何对指定位置进行索引,其实我们不止可以将索引出来的值赋值给变量,我们也可以对索引的位置进行修改:
x = [1 2 3;4 5 6;7 8 9]
x(3,:) = 0这样
x第3行的所有列都会被赋值为0,即x变为[1 2 3;4 5 6;0 0 0]。也可以这样:
x = [1 2 3;4 5 6;7 8 9]
x(3,:) = x(1,:)这样
x第3行的值会被赋值为与第1列相同,即x变为[1 2 3;4 5 6;1 2 3]。