概述
最近碰到这个函数的用法,随手记一下
[I,J] = ind2sub(siz,IND) returns the matrices I and J containing the equivalent row and column subscripts corresponding to each linear index in the matrix IND for a matrix of size siz. siz is a vector with ndim(A) elements (in this case, 2), where siz(1) is the number of rows and siz(2) is the number of columns.
matlab帮助文件里面是这样的描述,该函数就是得到矩阵中元素的行和列的下标值。在矩阵中默认的元素索引是按照列排序,例如:
siz =
1 2 3
4 5 6
7 8 9
定义一个3行3列的矩阵,默认的siz(3) = 7。
回到我们的函数中,siz实际上是个一维数组,其中的元素分别表示要求的矩阵的各个维度的数目,第一个元素表示矩阵的行数,第二个元素表示矩阵的列数,依此类推…
而IND则包含我们要找的元素的索引值,返回的矩阵分别表示不同维度的下标值,第一个矩阵表示这些索引值在第一维的下标,第二个矩阵表示索引值在第二维的下标,依此类推…
下面还是以具体例子来讲解吧
上图中可以看到左边表示的是一个3*3矩阵中索引值,是按照列排列的,右边则是行和列的下标值。我们定义s = [3, 3],表示我们要求的是一个3行3列的矩阵。IND = [3 4 5 6],表示要求的索引值有3,4,5,6,那么函数的运行结果为:
IND = [3 4 5 6]
s = [3,3];
[I,J] = ind2sub(s,IND)
I =
3 1 2 3
J =
1 2 2 2
对照着上面的图可以看到,这些索引值的下标值为(3,1),(1,2),(2,2),(.3,2)。
一般s矩阵包含的元素数目即表示我们要求的矩阵的维度,而返回的矩阵数目则应与该维度相等。
最后
以上就是魁梧小蘑菇为你收集整理的ind2sub函数的全部内容,希望文章能够帮你解决ind2sub函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复