matlab sub2ind函数

sub2ind官方解释

sub2ind(arraySizedim1Subdim2Subdim3Sub, ...) 为大小是 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)
下标超出范围。

看了这篇大牛写的文章,明白了自己出错。

https://blog.csdn.net/u011624019/article/details/80345717?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-1.vipsorttest&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-1.vipsorttest

 

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返回值是坐标的位置值

 

 

你可能感兴趣的:(matlab,学习,matlab)