sub2ind
官方解释
sub2ind(
为大小是 arraySize
, dim1Sub
, dim2Sub
, dim3Sub
, ...)arraySize
的 N 维数组的每个维度返回与指定的下标等效的线性索引。arraySize
输入是包含 n 个元素的矢量,指定数组中的维数。dimNSub
输入是正整数标量或矢量,指定矩阵的一个或多个行-列下标。
我的理解 arraySize 则是一个数组,dim1Sub 是一个位置即可以是行坐标值,也可以二维坐标。dim2Sub 是一个位置即可以是列坐标值,也可以二维坐标。
荔枝:
A=[1:3;4:6]
D=sub2ind(size(A),2,3)
- 结果:
A =
1 2 3
4 5 6
D =
6
分析:则结果是来是来自与第二行第三列的位置值, 注意:matlab中矩阵的存储是按列存储的顺序。
荔枝:
A=[1:3;4:6]
D=sub2ind(size(A),[1,3],[2,3])
- 结果:
错误使用 sub2ind (line 43)
下标超出范围。
看了这篇大牛写的文章,明白了自己出错。
D=sub2ind(size(A),[1,3],[2,3]) 是索引出[1,2]和[3,3]的坐标
荔枝:
A=[1:3;4:6;7:9]
D=sub2ind(size(A),[1,2],[3,3])
- 结果:
A =
1 2 3
4 5 6
7 8 9
D =
7 8
- 分析 sub2ind返回值是坐标的位置值