正如上一篇文章所述,Matlab
中的所有变量都可以看成数组或矩阵。那么我们获取数组中某个位置的值,就需要用到数组索引的功能。文中,以二维矩阵中某些特定位置的元素为例,说明如何查询数组索引。关于三维数组,方法是类似的,只需要多加一个索引下标即可实现。
MathWorks官网
MATLAB® 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素,请使用索引。
这里,我们假设有一个4×4
的矩阵A
:
>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
引用数组中的特定元素有两种方法:
- 1、最常见的方法是指定行和列的下标,即元素所在的具体位置,例如
>> A(4,2)
ans =
14
- 2、另一种方法不太常用,但有时非常有用,即使用单一下标按顺序向下遍历每一列
>> A(8)
ans =
14
>> A(3)
ans =
9
一般情况下,我们使用方法1来引用元素。使用单一下标引用数组中特定元素的方法称为线性索引。
如果尝试在赋值语句右侧引用数组外部元素,MATLAB
会引发错误。即,引用元素的下标超过最大索引值,比如4行4列矩阵,你要引用第五行第五列这种情况。
>> test = A(4,5)
索引超出矩阵维度。
当然,您可以给矩阵维度以外的元素赋值,即可以新增索引下标。如此,数组大小会增大以便容纳新元素。
>> A(4,5) = 17
A =
1 2 3 4 0
5 6 7 8 0
9 10 11 12 0
13 14 15 16 17
要引用多个数组元素,可以使用冒号运算符,这使您可以指定一个格式为start:end
的范围。例如,列出A
前三行及第二列中的元素:
>> A(1:3,2)
ans =
2
6
10
单独的冒号(没有起始值或结束值)指定该维中的所有元素。例如,选择A
第三行中的所有列:
>> A(3,:)
ans =
9 10 11 12 0
此外,冒号运算符还允许您使用较通用的格式start:step:end
创建等间距向量值。
>> B = 0:10:100
B =
0 10 20 30 40 50 60 70 80 90 100
这在我们后续编程做数据处理中,用途广泛。
如果省略中间的步骤(如start:end
中),MATLAB 会使用默认步长值1
。
>> B = 0:5
B =
0 1 2 3 4 5
关于三维数组给一个定义的例子吧:
>> C1
C1 =
1 2 3
4 5 6
7 8 9
>> C2
C2 =
1 0 0
0 1 0
0 0 1
>> C3
C3 =
1 1 1
1 1 1
1 1 1
>> D(:,:,1)=C1
D =
1 2 3
4 5 6
7 8 9
>> D(:,:,2)=C2
D(:,:,1) =
1 2 3
4 5 6
7 8 9
D(:,:,2) =
1 0 0
0 1 0
0 0 1
>> D(:,:,3)=C3
D(:,:,1) =
1 2 3
4 5 6
7 8 9
D(:,:,2) =
1 0 0
0 1 0
0 0 1
D(:,:,3) =
1 1 1
1 1 1
1 1 1
>> D
D(:,:,1) =
1 2 3
4 5 6
7 8 9
D(:,:,2) =
1 0 0
0 1 0
0 0 1
D(:,:,3) =
1 1 1
1 1 1
1 1 1
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/2836.html